Java:基于距离绘制点

Java:基于距离绘制点,java,canvas,plot,geometry,computational-geometry,Java,Canvas,Plot,Geometry,Computational Geometry,我需要根据距离绘制一组点。我有三个未知点X,Y和Z。然后我得到另一个未知点(A)及其与原始点(AX,AY,AZ)的距离。我将继续获取点和距离(B、BX、BY、BZ;C、CX、CY、CZ)等 我的问题是是否有可能画出所有的点。如果是这样的话,我需要多少点才能得到一张精确的地图?一张大概的地图怎么样 这与类似,但我得到了一组不同的距离,并且不限于原始点数 此外,如果这有帮助的话,我可以在X、Y、Z组中添加更多的点,这将为A、B等提供更多的距离。在不知怎么计算之前,我不知道的是XY、XZ、YZ、AB、

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

我的问题是是否有可能画出所有的点。如果是这样的话,我需要多少点才能得到一张精确的地图?一张大概的地图怎么样

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


此外,如果这有帮助的话,我可以在X、Y、Z组中添加更多的点,这将为A、B等提供更多的距离。在不知怎么计算之前,我不知道的是XY、XZ、YZ、AB、AC等距离。

我不确定确切的绘图地图或近似绘图地图是什么意思。我想我可能知道,但我不确定。但是,在这种情况下,如果用户可以继续“向XYZ组添加更多点”(这是动态的),则无法绘制所有点。听起来你需要在用户开始之前知道他要画什么。现在,如果所有这些都是静态的,这是可能的

  • 我假设您使用二维空间

    如果是1D,那么2分就足够了(不一样!!!)

    如果2D3个距离就足够了但所使用的点必须不在同一条线上

  • 绘图的位置/方向

    对于相对绘图,上述条件已足够。如果您还需要精确的方向和位置,则需要知道前3个点的精确位置,否则,绘图将看起来相同,但可以偏移、旋转并镜像到原始几何体

    • 知道1点可以消除偏移
    • 知道两点可以消除旋转
    • 了解3点可以消除镜像
  • [notes]

    对于
    n-D
    坐标系,您需要
    n+1

    [edit1]方程

    原始问题文本未包含任何需要的方程式,但注释需要,因此以下是一些:

    您将需要两个超球体之间的交点(在二维圆中,在三维球体中,…),请看这里:

    将每个点的圆投影为圆心,半径等于距该点的距离。找出所有圆组合之间相同的交点
    (0,1)、(0,2)、(1,2)

    黄色交点在所有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,V1
    V

    通过精确与近似值垂直,我的意思是,如果可以将位置估计在某个小分数内,那就足够了。i、 我很想知道X在[4,5]处,但如果我能确定它在以[4,5]为中心的半径为0.001的圆内,那就足够了。放置点后,这些点是静态的。我最初的思路是把A放在[0,0]上,把X放在[0,AX]上,以得到一个基本的参考框架。然后我们知道B必须在以X为中心半径BX的圆上或圆内。从那里我不知道该去哪里,或者在不知道至少一个Y的情况下是否有可能。太好了!我会用什么公式?