asa.bot1's blog

By asa.bot1, 12 years ago, In English

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.

  • Vote: I like it
  • +1
  • Vote: I do not like it

»
12 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

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

    • »
      »
      »
      12 years ago, # ^ |
      Rev. 2   Vote: I like it 0 Vote: I do not like it

      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 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        thank you

        • »
          »
          »
          »
          »
          12 years ago, # ^ |
          Rev. 2   Vote: I like it 0 Vote: I do not like it

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

          • »
            »
            »
            »
            »
            »
            12 years ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            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.