2010-11-25 64 views
4

pour un logiciel d'imagerie 3D i am codage:imagerie 3D: la définition d'un ellipsoïde basé sur 3 ellipses données qui sont parallèles aux plans cartésiens

I besoin de définir un ellipsoïde E, qui peuvent avoir des rayons, les centres et rotations dans l'espace alt text

l'interface utilisateur permet à l'utilisateur de contrôler 3 ellipses, qui sont des « tranches » de l'ellipsoïde (rouge, vert, bleu dans l'image), et sont parallèles (par définition) du principal cartésien avions (xy, yz.) xz)

Ces 3 ellipses sont pa rt, et définir, l'ensemble ellipsoïde alt text

chaque tranche peut être déplacée, redimensionnée ou mis en rotation dans l'espace et chaque tranche est entièrement définie: sa position 3D du centre dans l'espace, il est 2 rayons, il est distance de l'axe Avions. Chaque changement devrait, évidemment, affecter les paramètres de l'ellipsoïde E, et les 2 autres ellipses dérivées.

i besoin de l'équation pour recalculera ellipsoïde E sur la base des modifications apportées à une tranche

(Le type préféré de l'équation pour l'ellipsoïde devrait le rendre facile à tirer les coupes d'ellipse XY (variable z))

des idées? Thanx à l'avance Saar

+0

Je suppose que vous pouvez penser encore une fois que cette phrase _each change devrait, évidemment, affecter les paramètres de l'ellipsoïde E, et les 2 autres ellipses dérivées_ Donc ... Qu'est-ce qui est fixé? –

+0

Je n'ai pas compris votre commentaire – Saariko

+0

@belisarius la relation entre les 3 ellipses et l'ellipsoïde est fixe. cette équation (= relation) est ce que j'essaie de comprendre! – Saariko

Répondre

0

Si, à un instant donné, les 3 Ellipses représentent des coupes « cartésiens » de E, une seule modification quelconque de (panoramique, zoom, rotation) de l'un d'eux redéfinit un ellipsoïde unique. Heureusement, il y a une souris (ou unique reconnu Keystroke) ou un esprit pour cette question ..

2

Je pense que la clé de ce problème consiste à réécrire l'équation de l'ellipse initiale matrix form: x T Ax, où x = {x, y, z} et Un est défini positif. Prendre

Ellipsoid matrix.

nous pouvons mettre à jour A via un similarity transform. Alors que, la matrice mise à jour est alors A »=U T AUU est un orthogonal matrix et U T est sa transposition. Puis A ' est utilisé pour mettre à jour les autres vues.

A partir des matrices de rotation autour des trois axes

Rotation Matrices about the three axes.

nous pouvons voir très clairement qu'une rotation autour des axes sera l'effet 8 termes A. Depuis, A est symétrique cela est réduit à seulement changer 5 sur 6 termes. Mise à l'échelle/étirement est également très facile à faire.

Nous commençons en supposant que le tronçon est le long de l'axe x (ou de tout axe approprié), de sorte que S est une matrice diagonale avec une diagonale {sqrt (s), 1, 1}, où s est la quantité d'étirement appliquée. Ensuite, la matrice mise à l'échelle est tournée dans le bon sens d'application, à savoir R Theta S R ThetaT, où thêta est l'angle entre l'axe x positif et la direction d'étirage dans le sens horaire. Notez l'ordre inverse des rotations ici, comme R ThetaT peut être considéré comme la rotation des coordonnées de sorte que S étend l'axe des x et R Theta les tourne en arrière. Par exemple, si le plan xy est remis à l'échelle le long de x = y par un facteur de s, puis

scaling matrix

S est appliquée à Un de la même manière que les rotations et, de nouveau, il est facile de voir que tous les termes sauf zz sont directement affectés par l'opération de mise à l'échelle.

1

Ici vous avez un exemple d'une situation inextricable :

Un vrai allipsoid et une sphère dont les intersections avec les trois plans de coordonnées sont des points. Dans cet exemple, vous n'êtes pas en mesure de décider quel quadrique vous devez mapper.

alt text

alt text

Les équations de ces surfaces sont:

(-1 + x)^2 + (-1 + y)^2 + (-1 + z)^2 == 1 

et

1/8 (12 + 3 x^2 + 3 y^2 - 2 y (2 + z) - 2 x (2 + y + z) + z (-4 + 3 z)) == 1 

Alors, que vos solutions ne sont pas définies de manière unique, vous ne pouvez pas reconstruire votre ellipsoïde en fonction des trois dans tersections. Je pense que les autres réponses à votre question ne tiennent pas compte des traductions.

+0

@belisarius, pardonnez-moi, mais je ne vois pas où le problème est passé de travailler avec trois tranches planaires mutuellement perpendiculaires d'un ellipsoïde à l'intersection de l'ellipsoïde avec une sphère. Je comprends d'où vient l'idée de la sphère, en ce sens que l'ellipsoïde est d'abord une sphère, mais la façon dont nous y arrivons en intersectant l'ellipsoïde n'est pas claire. – rcollyer

+0

@rcollyer Le problème n'est pas l'intersection de la sphère et de l'ellipsoïde. Le problème est que les deux intersectent les trois plans dans les mêmes points, de sorte que, basé uniquement sur les intersections, vous ne pouvez pas savoir laquelle de ces surfaces vous devez rendre en 3D –

+0

@belisarius, ah, je vois. Si les intersections sont réduites à leurs limites, c'est-à-dire des points, alors il n'y a aucun moyen d'établir l'ellipsoïde réel. Je pense que ce problème se produira si l'une des intersections devient un point ou ne se croise plus avec l'ellipsoïde. Merci. – rcollyer