2016-04-25 7 views
0

私はメモ作成アプリを作成しています。このアプリでは、線をベジェ曲線にしています。現時点では、whileループの外側で定義された行列に新しい値を入れようとするとエラーが発生します。私はダミー変数に入れられたときにそれ自身を試してみたところ、ループ内で動作します。私が2次元変数の値を置き換えるためにフォーマットを使うと、それはループ外で動作しますが、ループ内で両方のアクションを一緒にするとうまくいきません。swift- whileループで配列値の置換を伴うexc_bad_instruction(code = exc_i386_invop、subcode = 0x0)を取得

//: Playground - noun: a place where people can play 

import UIKit 


var x2 = 6.0 
var y2 = 5.0 
var x1 = 1.0 
var y1 = 1.0 

var p1x = 2.0 
var p1y = 3.0 

var B = 6.5 
var Ba = 2.2 
var percentall = Ba/B 

var yall = 5.0 
var xall = 1.0 
var A = 4.0 
var C = 5.0 
var Ct = 0.0 
var At = 0.0 
var Aall = Int(A) * 10 
var Call = Int(C) * 10 


var thelistx = [[Double]](count: Call, repeatedValue: [Double](count: Call, repeatedValue: 0.0)) 
var thelisty = Array(count: Aall, repeatedValue: Array(count: Call, repeatedValue: 0.0)) 


var theAt = 0 
var theCt = 0 


while At <= A { 
    var Apercent = percentall * At 
    var Aend = y1 + At 
    var yslope = (A - At) * percentall + Aend 
    var lefty = (yslope - Apercent) * percentall + Apercent 
    var righty = (y2 - yslope) * percentall + yslope 
    while Ct <= C { 
     var Cpercent = percentall * Ct 
     var Cend = x2 - Ct 
     var xslope = (C - Ct) * percentall + Cend 
     var leftx = (xslope - x1) * percentall + x1 
     var rightx = (x2 - xslope) * percentall + xslope 

     thelistx [theAt] [theCt] = (rightx - leftx) * percentall + left 

*********************Execution was interrupted, reason exc_bad_instruction (code=exc_i386_invop, subcode=0x0) *************** 

     thelisty [theAt] [theCt] = (righty - lefty) * percentall + lefty 

     Ct += 0.1 
     theCt += 1 
    } 
    At = At + 0.1 
    theAt += 1 
} 

答えて

1

コンソールは、あなたのエラーが何であるかを示しています

fatal error: Index out of range

あなたはCt < C - 1while Ct < Cを変更thelistx [theAt] [theCt]

で範囲外のつもり配列の境界でのあなたの電話を保持します。

関連する問題