Java:基于距离绘制点

时间:2014-09-15 14:37:09

标签: java canvas plot geometry computational-geometry

我需要根据距离绘制一组点。我有三个未知点X,Y和Z.然后我得到另一个未知点(A)和它与原件的距离(AX,AY,AZ)。我将继续获得点数和距离(B,BX,BY,BZ; C,CX,CY,CZ)等。

我的问题是它是否可以绘制所有点。如果是这样,我需要多少点才能得到精确的情节图?大概地图怎么样?

这类似于this question,但我得到了一组不同的距离,并不限于原始的点数。

另外,如果它可以帮助我可以为X,Y,Z组添加更多的点,这将给我更多的距离A,B等。我不知道直到它以某种方式计算的任何一个距离XY,XZ,YZ,AB,AC等

2 个答案:

答案 0 :(得分:0)

我不确定你的确切意思是精确的地图或近似的地图。我想我可能知道,但我不确定。但是,如果用户可以继续向XYZ组添加更多的点数,那么在这种情况下绘制所有点是不可能的,这是动态的。听起来你需要知道用户之前要绘制的内容。现在,如果所有这些都是静态的,那么可能

答案 1 :(得分:0)

  1. 我假设你使用2D空间

    如果 1D 那么2分就足够了(不完全相同!!!)。

    如果 2D ,那么 3个距离就够了,但使用的点必须不在同一条线上!!!

    < / LI>
  2. 情节的位置/方向

    如果你想要精确的方向和位置,那么

    对于相对绘图是足够的条件,那么你需要知道前3个点的确切位置,否则你的绘图将看起来相同但可以被激活,旋转和镜像到原始几何。 / p>

    • 知道1点消除偏移
    • 知道2点消除了旋转
    • 知道3点消除了镜像
  3. <强> [注释]

    n+1坐标系

    需要n-D

    [edit1]方程式

    原始问题文本不包含任何方程式需要,但评论需要它,所以这里有一些:

    你需要两个超球面之间的交叉点(在2D圆圈中,在3D球体中......)所以请看这里:

    从每个点投射圆圈作为中心,半径等于距该点的距离。找出所有圆圈组合(0,1),(0,2),(1,2)

    之间相同的交点

    example

    黄色交叉点在所有3个组合中是相同的,因此这是下一个点,或者对于2D只是解决这个系统:

    (x-x0)^2+(y-y0)^2=l0^2
    (x-x1)^2+(y-y1)^2=l1^2
    (x-x2)^2+(y-y2)^2=l2^2
    

    其中x,y是交叉点,xi,yi是圆心,li是距该点的距离。

    如果做得对,第一个选项应该更简单,更准确但需要一些关于向量和三角学数学的知识。您需要在矢量上添加旋转或计算,并在 2D

    中使用垂直矢量要素
    V(x,y) -> V0(+y,-x),V1(-y,+x)
    

    其中V0,V1V

    垂直