2 つの点があるとし(x1,y1)o----------------o(x2,y2)
ます。
私がやろうとしているのは、(x1,y1) から距離 d だけ線に沿って移動するときに新しい座標を取得することです。しかし、(x1,y1) から離れれば離れるほど、新しい座標がますます不正確になり始める (つまり、元の線から外れてしまう) ことに気付きました。私の解決策は、 https://math.stackexchange.com/questions/25286/2d-coordinates-of-a-point-along-a-line-based-on-d-and-m-で提供された最後の回答に基づいています。どこにいるの?私はここで何か間違っていますか?または、objective-c に同じことができるクラスはありますか?
ありがとう!
float signu, signv;
float x, y;
float x1 = cp1.x;
float y1 = cp1.y;
float x2 = cp2.x;
float y2 = cp2.y;
float d = noOfSteps*pixelsPerStep;
float m = (y2-y1)/(x2-x1);
float u = d/ABS(sqrt(m*m+1));
float v = m*u;
if(x1-x1<=0)
signu = -1;
if(y2-y1<=0)
signv = -1;
x = x1 + signu*u;
y = y1 + signv*v;