Determining if a given point is inside a right circular cylinder

AI Thread Summary
To determine if a point (x, y, z) is inside a right circular cylinder, first calculate the two-dimensional distance from the cylinder's center to the point in the x-y plane; if this distance exceeds the cylinder's radius, the point is outside. If the distance is less than or equal to the radius, check the z-coordinate against the cylinder's height; if z falls between the bottom and top z-coordinates, the point is inside. If z equals either boundary, the point is on the border. For cylinders not aligned with the axes, use parametric equations to define the cylinder and check if the point satisfies the corresponding inequalities. The discussion emphasizes the importance of accurately defining the cylinder's parameters for proper point inclusion assessment.
willworkforfood
Messages
54
Reaction score
0
Defining the right circular cylinder, I have a vector formed between the centers of each 'cap' and a radius.

I need to determine if a given point (x,y,z) is inside the confines of this cylinder. And and all help is appreciated.
 
Mathematics news on Phys.org
If it's aligned with the axes, this is easy. Say the circular face is on the x and y axes with the height on the z axis. Check the two-dimensional distance from the center of the cylinder to (x, y). If it's greater than the radius, it's outside; if less, continue. (If equal then continue, but note that if the second test passes it's actually on the border rather than being inside.) For the second, compare the bottom and top z-coordinates of the cylinder to z. If z is between the two it's inside; if equal to one of the two it's on the boundary; if outside the two it's outside.
 
CRGreathouse said:
If it's aligned with the axes, this is easy. Say the circular face is on the x and y axes with the height on the z axis. Check the two-dimensional distance from the center of the cylinder to (x, y). If it's greater than the radius, it's outside; if less, continue. (If equal then continue, but note that if the second test passes it's actually on the border rather than being inside.) For the second, compare the bottom and top z-coordinates of the cylinder to z. If z is between the two it's inside; if equal to one of the two it's on the boundary; if outside the two it's outside.

It is not defined on the axes :(
 
write the equation that defines the cylinder as an equality/inequality, plug in point and see if satisfies it.
 
willworkforfood said:
It is not defined on the axes :(

Then I'd have to know how it's defined to answer that. If you have two systems of axes, you need to convert between them; if you have a parametric equation to define the cylinder, just check if it holds as an inequality.
 
If the points at the centers of the caps are (ax,ay,az) and (bx,by,bz), you can write a parametric equation for the center line as x(t) = ax + t (bx-ax), y(t) = ay + t (by-ay), z(t) = az + t (bz-az), where t=0 or 1 will give you back the cap points.

The distance from a given point (px,py,pz) to any point in the line is given by the function d(t) = sqrt ( (x(t)-px)^2 + (y(t)-py)^2 + (z(t)-pz)^2 ). The closest point on the line (the proyection of your point onto the line) is found by minimizing d, that is, by setting d'(t) = 0 and solving for t. (You could do it by hand, using a math package, or using www.quickmath.com, menus Calculus/Differentiate and Equations/Solve).

Now, with the obtained t_min value, you can: (a) determine if t_min is <0 or >1 (or <=, >= to exclude the border), which would mean the given point was below one cap or above the other; and (b) calculate d(t_min), the distance from the line to your point, that will tell you if the point is farther than the cylinder's radius.

Edit:
Here, I was bored. (C source only.)
 

Attachments

Last edited:
Seemingly by some mathematical coincidence, a hexagon of sides 2,2,7,7, 11, and 11 can be inscribed in a circle of radius 7. The other day I saw a math problem on line, which they said came from a Polish Olympiad, where you compute the length x of the 3rd side which is the same as the radius, so that the sides of length 2,x, and 11 are inscribed on the arc of a semi-circle. The law of cosines applied twice gives the answer for x of exactly 7, but the arithmetic is so complex that the...
Back
Top