ポリラインをZY平面へ投影する

縦断勾配の確認等でポリラインをZ軸方向へまっすぐ伸ばす。

//
// ポリラインをZ軸上に真っすぐに投影する
// RunOver: Primitives
//
int pts[] = primpoints(0, @primnum);

float sum = 0;
for(int i = 0; i < len(pts); i++)
{
    vector p = point(0, "P", pts[i]);
    if(i == 0)
    {
        setpointattrib(0, "P", pts[i], set(0, p.y, 0));
    }
    else
    {
        vector prev = point(0, "P", pts[i-1]);
        float L = sqrt(pow(prev.x - p.x, 2) + pow(prev.z - p.z, 2));
        sum += L;
        setpointattrib(0, "P", pts[i], set(0, p.y, sum));
    }
}
タイトルとURLをコピーしました