What is a good algorithm to use to check whether the finite line SEGMENT intersects the circle?
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Wai Han
am 10 Okt. 2020
Kommentiert: Wai Han
am 19 Okt. 2020
Suppose we know the start point (x1,y1), the end point (x2,y2) and the circle center and its radius .
How to make a collisionfree alogrithm to check whether the line segment passes through the circle or not.
I am asking this for the RRT (rapidly exploring random trees) algorithm.
2 Kommentare
Ameer Hamza
am 10 Okt. 2020
Given the line segment, center of the circle and its radius. You can develop a deterministic algorithm to check if they intersect or not. Why do you need RRT in this case?
Akzeptierte Antwort
Image Analyst
am 10 Okt. 2020
See attached point-line distance demo.
Basically you need to see if the distance of the circle center to the line is less than the circle radius. If it is, there is an intersection. The code will show you how to do that.
5 Kommentare
Image Analyst
am 18 Okt. 2020
Using the right math, you can determine if the line from the point perpendicular to the infinite line intersects the line in the segments where you defined the line. So if (xi,yi) is the intersection point of the perpendicular line with the infinite line, and (x1,y1) and (x2,y2) are the segment endpoints, it seems like you could just do
isInsideSegment = (x1<xi) && (xi<x2) && (y1<yi) && (yi<y2);
Right? Does that make sense?
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!