bestimmt Ich habe drei Punkte, sagen wir C als einen Mittelpunkt, während P1 und P2 zwei andere Punkte sind. Ich habe berechnet Winkel zwischen C und P1 wissen, wie Winkel1 und p2 c genannt Winkel 2. hier ist der Code, den ich es zu berechnen, verwendenWie man den Rotationswinkel der Ellipse und den Füllbereich zwischen Punkten in opencv, C++
angle1 = atan2(p1.y - c.y, p1.x - c.x);
angle2 = atan2(p2.y - c.y, p2.x - c.x);
nach, dass ich sie in Grad änderte sich dies durch die Verwendung.
if (angle1 >= 0)
angle1 = angle1 * (180/PI);
else
angle1 = (angle1 + 2 * PI) * (180/PI);
if(angle2 >= 0)
angle2 = angle2 * (180/PI);
else
angle2 = (angle2 + 2 * PI) * (180/PI);
Dann habe ich diese OpenCV-Methode verwenden um den Bogen zu berechnen ziehen, ist einige Zeit Bogen zwischen zwei Punkt perfekt, während einige Male es den ganzen Kreis andere als die beiden Punkte erfüllt, die ich Bild hier posten.
radius = sqrt(pow(c.x - p1.x, 2.0) + pow(c.y - p1.y, 2.0));
ellipse(outPutMat, c, cv::Size(radius, radius), 0, angle1, angle2, Scalar(0, 0, 0), -1, 8, 0);
roten Punkte sind die Punkte, während schwarze Ellipse Farbe gefüllt ist. Für erste Bild agngle1 = 42,1376 während angle2 = 338,962 Für 2. Bild agngle1 = 152,447 während angle2 = 223,363
2. Bild rechts Ergebnissen geführt, aber zuerst falsch ist. Ich möchte nur den Bereich zwischen den Punkten füllen.
Ich habe dieses Problem bereits behoben. Danke für die Antwort. Deine Antwort ist auch richtig. – Mudasar