私はエラーに固執していますタイトルに記載されている問題について解決できません。Levy C曲線のJavascript再帰的実装
私のアルゴリズムは次のようになります。非常に重くウィキペディアのページに示す実装に基づいています
function levyCCurve(x,y, len, angle, points,order){
fx = x
fy = y
length = len
alpha = angle
it_n = order
if(it_n > 0){
length = length/Math.sqrt(2)
levyCCurve(fx,fy,length,alpha+45,points, it_n - 1);
fx = fx + (length * Math.cos((angle + 45)/180*Math.PI))
fy = fy + (length * Math.sin((angle + 45)/180*Math.PI))
levyCCurve(fx,fy,length,angle-45,points,it_n - 1);
} else {
points.push([fx,fy,fx + (length*Math.cos(angle/180*Math.PI)),fy+ (length*Math.sin(angle/180*Math.PI))])
}
}
。私も自分の実装に誤りがあったので、ウィキペディアに表示されたものをすばやく行うことに決めましたが、今ではこれもうまくいきません。
例:
[500、500、600、500]
[500、500、550、550]
:私はこのlevyCCurve(500,500,100,0,pointsArray,2)
のような機能を起動した場合、私は以下の点を取得します[550、550、600、500]
[500、500、500、550]
[500、550、550、550]
[535.3553390593273、585.3553390593273、570.7106781186546、550]
明確に最後の点が間違っていると、なぜ私は、誰かが私が間違っているところだと指摘することができれば素晴らしいだろう、得ることはありません!