Блог пользователя asa.bot1

Автор asa.bot1, 12 лет назад, По-английски

i have 2 three-dimensional object.(they haven't got any curve)I know all points (x,y,z)coordinates and all edges. How i can know they are collisioning.

  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I think here is no simple solution for any kind of 3D-objects. There could be very complicated cases (imagine two chained toroids — each one is somewhat inside other though they do not collide).

You may try to loop through all edges of one object and test whether any of them intersects with any of the planes of the second object — this problem is bit tricky too if any of the planes have holes inside.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Thank you for help . But i said our object haven`t got any curve .It consist only straight segments . Please think again

    • »
      »
      »
      12 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Please think yourself.

      Object consisting of only straight edges could anyway be concave or with holes. Look at pictures of transformer cores, for example: http://www.tpub.com/neets/book2/5b.htm

      And by the way even two completely convex objects (two cubes for example) could intersect in such a way that no vertex is placed inside the opposite object, so that my proposed solution is reasonable enough.

      Look at these tetrahedron intersection.

      • »
        »
        »
        »
        12 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится

        thank you

        • »
          »
          »
          »
          »
          12 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

          how can i know a a segment intersecting a plane . (in computer )

          • »
            »
            »
            »
            »
            »
            12 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится

            Start with checking intersection of segment and triangle in 3D space. It is a simple problem.

            Then, for example, you can use any kind of triangulation to dissect planar polygon into triangles and check intersection of a segment with each of them.