Shift set of points in 3d

前端 未结 2 1389
孤城傲影
孤城傲影 2020-12-22 14:27

I have a set of points in 3d. I form a line by joining these points. I have to obtain another line which is a shifted version of this line, such that the resultant shift is

相关标签:
2条回答
  • 2020-12-22 14:33

    If you three points are A, B and C. Then the three point define a plane. In general the points will not lie on a (straight) line. If they do then it becomes ambiguous what "right" means. If everything is on a sphere, then the three points will define a curve formed by the intersection of the sphere and the plane. You could form another line my finding the intersection of the sphere with a parallel plane.

    I'm not quite sure what you want but I'm guessing you want the second line to lie in a parallel plane. You can find the normal to the plane by taking the cross product N=(A-B) X (C-B). It looks like you are doing something like this but you need the ^ operator. See https://www8.cs.umu.se/kurser/TDBD12/VT04/lab/osg/html/doc++/osg/Vec3.html#DOC.2.224.21

    upVec = line1 ^ line2;
    
    0 讨论(0)
  • 2020-12-22 14:47

    look here: ECEF <-> ENU coordinates this might help

    I rather use NEH local North,East,Height(or altitude) coordinate system

    • it is similar to compass + altimeter
    • if you are not looking in rotation axis direction (ECEF Z-axis) ... on poles
    • then North vector is just (0,0,6356754.7)-viewer_position (all in ECEF)
    • East,West vectors can be obtained as North x (0,0,6356754.7)
    • don`t remember if it is east or west (depends on your coordinate system and cross multiplicants order)
    • just check it visually and if wrong reverse the order or negate result
    • Up vector (Height or Altitude) is easy from this just Up=North x East or Up=North x West
    • again if wrong direction reverse order or negate result ...

    [Notes]

    • 6356754.7 [m] is earths polar radius
    • if you viewing from poles (ECEF Z-axis)
    • then North vector and Up vector lies on the same axis (in opposite direction)
    • which means there is no east or west (singularity)
    • on south hemisphere is usually used South instead of North
    • in that case South = (0,0,-6356754.7)-viewer_position
    0 讨论(0)
提交回复
热议问题