Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Become a Premium Member and unlock a new, free course in leading technologies each month.

Solved

Posted on 2011-03-02

Hi everyone,

I'm new to this forum and new to Java 3d. I've been trying to solve my problem for days but I can't find a solution! I am creating a mind map(like a graph) and I have problem with intersection. I use spheres for the nodes and cylinders as the links between them. I have a function where it calculates the position of the node(each node can have 18 children around it) and how to position the cylinder(edge). I have added boundingspheres to the nodes to check for intersections and it works fine but I'm trying to add boundingboxes to the links and get the wrong results. Can anyone tell me how to add a boundingbox around a cylinder? Oh I have to check for intersections before I add the nodes and links to the scene so I have to check the boundingbox depending on the position that the cylinder will have afterwards... I hope I make sense...

I'm new to this forum and new to Java 3d. I've been trying to solve my problem for days but I can't find a solution! I am creating a mind map(like a graph) and I have problem with intersection. I use spheres for the nodes and cylinders as the links between them. I have a function where it calculates the position of the node(each node can have 18 children around it) and how to position the cylinder(edge). I have added boundingspheres to the nodes to check for intersections and it works fine but I'm trying to add boundingboxes to the links and get the wrong results. Can anyone tell me how to add a boundingbox around a cylinder? Oh I have to check for intersections before I add the nodes and links to the scene so I have to check the boundingbox depending on the position that the cylinder will have afterwards... I hope I make sense...

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

- Help others & share knowledge
- Earn cash & points
- Learn & ask questions

2 Comments

Cylinder-sphere

------------------------

Let the cylinder start at x, be of radius r, length L, direction d.

Let the sphere be at o, radius R.

Find the shortest distance between the point o and the line x+t*d, as outlined here:

http://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html

Then if the shortest distance is greater than (r+R) then they do NOT intersect.

Otherwise, if the closest point is for t<L, then they DO intersect.

Cylinder-cylinder

-------------------------

Exactly the same concept.

Suppose cylinder A begins at x_A, is of length L_A, has radius r_A, and points in the direction d_A.

Similarly for cylinder B.

Then compute the shortest distance between the axes of each cylinder, as explained here:

http://www.softsurfer.com/Archive/algorithm_0106/algorithm_0106.htm (It's just one equation)

Is this distance greater than (r_A+r_B)? If so, then they do NOT intersect.

Otherwise, suppose the point on the axis of A which is closest to the axis of B is x_A+t*d_A, where t is a parameter. Then if t<L then the cylinders DO intersect.

Does that make sense?

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Course of the Month6 days, 18 hours left to enroll

Join the community of 500,000 technology professionals and ask your questions.