# Determining if a given point is inside a right circular cylinder

by willworkforfood
Tags: circular, cylinder, determining, inside, point
 P: 55 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.
 Sci Advisor HW Helper P: 3,680 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.
P: 55
 Quote by CRGreathouse 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 :(

P: 1,705

## Determining if a given point is inside a right circular cylinder

write the equation that defines the cylinder as an equality/inequality, plug in point and see if satisfies it.
Sci Advisor
HW Helper
P: 3,680
 Quote by willworkforfood 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.
P: 688
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.)
Attached Files
 cylinder.zip (1.0 KB, 62 views)

 Related Discussions Introductory Physics Homework 10 Introductory Physics Homework 1 General Math 6 Introductory Physics Homework 5 Introductory Physics Homework 4