标签: rotation geometry coordinates line multiline
我有一条从(0,0)开始的任意多线(XY点系列)。 任务是以这种方式重新计算所有位置,因此最后一点将位于预定义边缘(Y值)。见插图。
有没有算法可以做到?
答案 0 :(得分:1)
如果最后一个点的坐标为(xe, ye),则从原点到该点的方向角为
(xe, ye)
fie = Atan2(ye, xe)
从原点到临界点的距离是
len = Sqrt(ye*ye + xe*xe)
通缉的y位置是yw,所以方向角是
yw
fiw = Arcsin(yw / len)
所以你需要rotate所有角度差异
dfi = fiw - fie = Arcsin(yw / len) - Atan2(ye, xe)