Java 需要缩放/平移点阵列,以便路径匹配给定的端点
我有一系列的要点。我正在寻找一种方法来缩放/平移整个路径,以便路径的端点与我给出的端点匹配,但保持点阵列的形状Java 需要缩放/平移点阵列,以便路径匹配给定的端点,java,c#,algorithm,geometry,Java,C#,Algorithm,Geometry,我有一系列的要点。我正在寻找一种方法来缩放/平移整个路径,以便路径的端点与我给出的端点匹配,但保持点阵列的形状 void translate(Point[] array, Point scaleToPoint) 有没有什么算法可以实现我所描述的?提前谢谢你,非常感谢你的帮助 您可以执行以下操作。不要将起点视为(0,100)等任意位置,而是将其临时平移到原点(0,0)。然后,计算将端点拉伸到其新位置所需的标量 首先,假设array为非空,我们定义以下参考点 pointstart=arr
void translate(Point[] array, Point scaleToPoint)
有没有什么算法可以实现我所描述的?提前谢谢你,非常感谢你的帮助
您可以执行以下操作。不要将起点视为(0,100)等任意位置,而是将其临时平移到原点(0,0)。然后,计算将端点拉伸到其新位置所需的标量 首先,假设
array
为非空,我们定义以下参考点
pointstart=array[0];
点端点=数组[array.Length-1];
然后,计算拉伸点所需的标量
float sx=(scaleToPoint.X-start.X)/(end.X-start.X);
float sy=(scaleToPoint.Y-start.Y)/(end.Y-start.Y);
最后,进行实际拉伸
for(int i=0;i
您可以验证这是否有效,因为:
返回到最初的位置数组[0]
以array[array.Length-1]
结束scalePoint
- 这种转变是线性的
x
的点?我想转换/缩放整个路径,如图中所示。当我移动数组中的最后一个点时,数组中的其他点也应该像缩放一样移动。我仍然有点不明白你的意思。你能再给我举个例子吗?就像如果点回到左边会发生什么,你可以使用数组[^1]
与C#8.0配合使用,真是太棒了!这就是我要找的@加格哥特也谢谢你的时间!祝你们今天愉快!