Approximation d'Ellipse par des points
Bonjour !
Je travaille sur un logiciel qui permet d'importer des fichiers au format DXF afin de les afficher en 2D; j'aimerais importer les objets de type Ellipse qui possèdent les informations suivantes :
- Coordonnées du point central
- Coordonnée du point de fin de l'axe majeur
- Le "Ratio of minor axis to major axis" (je ne sais pas si c'est majeur/mineur ou inversement)
- L'angle de départ
- L'angle d'arrivée
Avec ces informations, je dois être capable de trouver une succession de points qui, une fois reliés ensemble, forme une ellipse !
(En effet, le soft est conçu de manière à ne traiter des objets qui se sont que des succession de points)
Je travaille avec Qt, mais ici, le soucis est plutôt mathématique; j'ai une base d'algo mais qui ne dessine les ellipse que de façon horizontale et qui a la base est fait pour des cercles.
Le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
double distanceDemiMajorAxis = sqrt(pow(ellipse.mx - ellipse.cx, 2) + pow(ellipse.my - ellipse.cy, 2));
double step = 2*M_PI/100;
double h = ellipse.cx; // Coordonnée x du centre
double k = ellipse.cy; // Coordonnée y du centre
double r = distanceDemiMajorAxis; // Ce paramètre a surement une valeur fausse, mais je ne savait pas trop quoi mettre pour simuler le 'rayon" d'une ellipse, vu qu'elle n'en possède pas
for(double theta = 0; theta < 2*M_PI; theta+=step)
{
double x = h + r * cos(theta);
double y = k - 0.5 * r * sin(theta);
ajoutDeCoordonneeDansUnISceneObject(&obj, x, y);
} |
J'éspère que vous pourrez m'aider !