Finding coordinates of a point between two points?

后端 未结 4 452
半阙折子戏
半阙折子戏 2020-12-03 18:09

Doing some 3D stuff in wpf- want to use a simpler test to see if everything is working (before moving to curves).

The basic question is given two points x1,y1,z1 and

相关标签:
4条回答
  • 2020-12-03 18:53

    Let t vary from 0 to 1. Use the following:

    (x3, y3, z3) = (1-t)*(x1, y1, z1) + t*(x2, y2, z2)

    When t=0 you get the first point. When t=1 you get the second.

    This method is called linear interpolation.

    0 讨论(0)
  • 2020-12-03 19:05

    a line joining the points in 3d is given by equation:

    (x - x1)/(x2 - x1) = (y - y1)/(y2 - y1) = (z - z1)/(z2 - z1)

    You have the values of x1,y1,z1,x2,y2,z2. This will give you an equation for the line.

    another equation would be

    ((x-x1)^2+(y-y1)^2+(z-z1)^2)^(1/2)=distance

    Solve the 2 equations to get the value of the points.

    0 讨论(0)
  • 2020-12-03 19:10

    For each p between 0 and 1 then this will give you a point on the line segment:

    (x1, y1, z1) + p * ((x2, y2, z2) - (x1, y1, z1))
    
    0 讨论(0)
  • 2020-12-03 19:11

    This has to do with math, but ok. Let P and Q be the two given points and X the point you're looking for.

    P + r(Q - P) = X
    

    r indicates a factor.

    if 0 < r < 1: the point x will be on the line between the two points.

    That's it!

    EDIT:

    To find a point at a given distance d from P(p1/p2/p3):

    d² / euclidian_square_distance(P,Q) = r
    

    Insert r in the equation mentioned above and you'll have your point! :)

    P.S: Btw: P-Q = (Px - Qx, Py - Qy, Pz - Qz)... i bet you alread knew it :)

    0 讨论(0)
提交回复
热议问题