Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要缩放/平移点阵列,以便路径匹配给定的端点_Java_C#_Algorithm_Geometry - Fatal编程技术网

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配合使用,真是太棒了!这就是我要找的@加格哥特也谢谢你的时间!祝你们今天愉快!