Cadre de l'ellipse
J'ai reçu une assignation pour un module graphique, dont une partie est de calculer le minimum de délimitation de l'ellipse d'un ensemble de formes arbitraires. L'ellipse n'a pas à être l'axe de l'alignement.
Ce travail est en java (euch) à l'aide de l'AWT formes, donc je peux l'utiliser tous les outils de forme pour la vérification de confinement/intersection d'objets.
- roulement de tambour... et la question est?
- c'est ce que vient de taper des questions à 3,44 suis! Croiriez-vous que je suis en train de faire ses devoirs à cette heure de la nuit et il n'est même pas pour demain? Ce qui a de l'université fait pour moi!? 😉
- wow... vous les gars sont en train de faire des trucs cool. Sauf si je suis absent ce qui est évident, c'est non trivial...
- Non, il n'est pas trivial, nos chargés de cours seulement à l'occasion de définir un exercice raisonnable avec un couple de accidentellement incroyablement difficile à des questions jetées parce qu'ils pensent jamais vraiment ce qu'ils veulent, c'est comme travailler pour une entreprise avec de véritables utilisateurs!
- En fait, ils n'ont même pas mention de la délimitation des formes dans le discours, c'est un module graphique!
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour le Le Volume Minimum D'Enfermer L'Ellipsoïde, ou dans votre cas 2D, la superficie minimale. Ce problème d'optimisation est convexe et peuvent être résolus de manière efficace. Découvrez le code MATLAB dans le lien que j'ai compris - la mise en œuvre est simple et ne nécessite rien de plus complexe qu'une inversion de matrice.
Toute personne intéressée par les mathématiques devraient lire ce document.
Aussi, de tracer l'ellipse est aussi simple - ce qui peut être trouvé ici, mais vous aurez besoin d'un MATLAB fonction spécifique pour générer des points sur l'ellipse.
Mais depuis l'algorithme retourne l'équation de l'ellipse dans la forme de matrice,
vous pouvez utiliser ce code pour voir comment vous pouvez convertir l'équation à la forme canonique,
à l'aide de Décomposition en valeurs singulières (SVD). Et puis il est assez facile de tracer l'ellipse à l'aide de la forme canonique.
Voici le résultat du code MATLAB sur un ensemble de 10 aléatoire 2D des points (en bleu).
D'autres méthodes comme la PCA ne garantit pas que l'ellipse obtenue à partir de la décomposition (eigen/singulier de la valeur) sera englobant minimal ellipse puisque les points à l'extérieur de l'ellipse est une indication de la variance.
EDIT:
Donc, si quelqu'un de lire le document, il y a deux façons d'aller à ce sujet en 2D: voici le pseudo-code de l'algorithme optimal - la sous-optimale de l'algorithme est clairement expliqué dans le document:
Algorithme Optimal: