我有一组曲线的位置,即图像的红线,现在我必须计算其余曲线的位置,即图像的绿线。我想把所有的线组合成多边形来绘制图像的蓝色线,我不能用线来做。因为我需要通过测量数据来渲染颜色。现在我用三角形画蓝线。如何计算垂直曲线线偏移?
xjreopfe1#
所以这是局部投影到二维的偏移线意味着您只需向其端点添加偏移。在2D中非常简单地计算垂直移位。你有一条线的端点P0,P1,想要一条线Q0,Q1,它与P0,P1平行,距离为l,所以:
P0,P1
Q0,Q1
l
dp = P1-P0 // line direction vector dp /= length(dp) // make it unit dq = vec2( +dp.y, -dp.x ) // rotate by 90 deg in 2D so dq is perpendicular to dp dq *= l // offset is now equal to size l Q0 = P0 + dq Q1 = P1 + dq
现在,如果你正在做曲线或多边形,你必须处理的边缘,请参阅:
如果这是3D的,那么你必须使用cross产品来获得dq沿着一些参考方向(如垂直于地球表面)
cross
dq
dq = cross (dp , some_refernce_direction_unit_vector) dq *= l
1条答案
按热度按时间xjreopfe1#
所以这是局部投影到二维的
偏移线意味着您只需向其端点添加偏移。在2D中非常简单地计算垂直移位。你有一条线的端点
P0,P1
,想要一条线Q0,Q1
,它与P0,P1
平行,距离为l
,所以:现在,如果你正在做曲线或多边形,你必须处理的边缘,请参阅:
如果这是3D的,那么你必须使用
cross
产品来获得dq
沿着一些参考方向(如垂直于地球表面)