Find center of rotation given a point inside circle

8 Ansichten (letzte 30 Tage)
pw
pw am 18 Mär. 2015
Kommentiert: pw am 19 Mär. 2015
I have a point inside a circle (not the center) and a list of distances from that point corresponding to points on the perimeter of the circle. The points on the perimeter of the circle are evenly spaced and I do not know the angle from the point inside the circle to the points on the perimeter.
How can I find the center of the circle?
Thanks! PW
  2 Kommentare
Guillaume
Guillaume am 18 Mär. 2015
This sounds a lot more like a math / geometry problem than a matlab problem.
It also sounds a lot like homework.
James Tursa
James Tursa am 18 Mär. 2015
If the only information you have is distances, then the answer cannot be obtained uniquely. Any answer you obtain could be rotated about your point to obtain an equally valid answer.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

John D'Errico
John D'Errico am 18 Mär. 2015
Bearbeitet: John D'Errico am 18 Mär. 2015
Actually, I'll bet that this is not a homework problem, at least not directly. Most students just post the direct assignment question, and this is clearly one that the poster has though about, and understands well enough to at least paraphrase the question in their words. So not a HW problem. I think.
Ok, so lets think about what you are giving us. A single, KNOWN point, that is known to be inside a circle. You don't know the center of radius of the circle.
Next, you have a list of distances from that point to a set of unknown points on the perimeter of the circle. Those points are unknown also. The only things you do know are the distances to those points, AND that they are equally spaced on the perimeter.
Before I could go further, an immediate question arises. Do the perimeter points cover the entire circumference? Or might they only lie in one quadrant, while still being equally spaced along that circular arc? Is that spacing of the points assumed to be exactly equal, to within floating point precision? So is there any noise in this system? (Again, beyond normal floating point trash in the least significant bits.)
Next, I think it is provable that there is no unique solution to this problem. As was pointed out, there are infinitely many points that will solve it, merely by rotating them around your indicated point. The problem has complete circular symmetry. Think of it this way:
Each piece of information is a distance only, to an unknown point. You can express that as a circle of known radius around your point. So you have many circles, of varying radii around a given point. Your goal is to find a circle that intersects Each of these circles. If any solution does exist that also satisfies the requirement that each of the intersections lies equally spaced around that new circular arc, then there must be infintely many solutions, since the circles as drawn are completely symmetrical around the point.
  4 Kommentare
Image Analyst
Image Analyst am 18 Mär. 2015
But he says , and you can assume (or maybe not), that all the other points are on the perimeter of the same big circle. If they're not, and they're just scattered around like raindrops on the ground, then you're right, but given that they must be on the perimeter of one big circle, then minboundcircle() should work.
Or feed 3 or more of the perimeter points into the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_fit_a_circle_to_a_set_of_XY_data.3F
pw
pw am 19 Mär. 2015
Thanks for your input John and Image Analyst.
The perimeter points do not necessarily cover the entire circumference but they are always equally spaced. In the case I'm working with currently, the points span across 320 degrees. There is some noise in the system with respect to the distances from the point inside the circle to the points on the perimeter.
I think I understand the remark regarding no unique solution. It's more proper for me to ask for the radius of the circle instead of its center (unless there's still no unique solution...). I will look into the minboundcircle() function but still not sure how I can obtain the right perimeter points?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by