Maths pures, physique, chimie, etc. : des tâches d'entraînement cérébral qui n'ont rien à voir avec le commerce [2ème partie]. - page 20

 

En coordonnées polaires, tout sera parfait. Mais si vous passez aux coordonnées normales, la même chose apparaîtra.

Quelle est la réponse courte ? Vous devez danser depuis le poêle. Si l'on évalue le domaine des valeurs, la réduction à cette forme n'est pas nécessaire.

_____________

D'ailleurs, il n'est pas difficile d'obtenir les coefficients de l'équation.

Et une dernière chose au fait : l'ellipse originale avant la rotation n'est pas non plus exprimée par une telle fonction.

 
TheXpert:

En coordonnées polaires, tout sera parfait. Mais si vous passez aux coordonnées normales, la même chose apparaîtra.

Quelle est la réponse courte ? Vous devez danser depuis le poêle. Si l'on évalue le domaine des valeurs, la réduction à cette forme n'est pas nécessaire.

_____________

D'ailleurs, il n'est pas difficile d'obtenir les coefficients de l'équation.

Et une dernière chose au fait : l'ellipse originale avant la rotation n'est pas non plus exprimée par une telle fonction.


La tâche consiste à dessiner une ellipse tournée, pixel par pixel. Pas une ellipse, mais un cercle aplati convient également.
 

Une ellipse et un cercle aplati sont la même chose.

Ainsi, il existe une équation -- x^2/a^2 + y^2/b^2 = 1 -- qui est une ellipse. (1)

De plus, il y a une transformation. L'expression de x y par x' y' ne pose aucun problème. La substitution dans (1) n'est pas un problème non plus.

Ensuite, on boucle sur x par incréments de 1 et on boucle sur y par incréments de 1.

Et puis on mesure ces points, et c'est assez facile.

Le seul problème est le domaine des valeurs. C'est là que vous devez y réfléchir.

 
TheXpert:

Une ellipse et un cercle aplati sont la même chose.

Donc, il y a une équation -- x^2/a^2 + y^2/b^2 = 1 -- qui est une ellipse. (1)

De plus, il y a une transformation. L'expression de x y par x' y' ne pose aucun problème. La substitution dans (1) n'est pas un problème non plus.

Ensuite, on boucle sur x par incréments de 1 et on boucle sur y par incréments de 1.

Et puis on mesure ces points, c'est pas si difficile.

Le seul problème : l'éventail des valeurs. C'est là que vous devez y réfléchir.



Si un cercle aplati et une ellipse sont identiques, alors y=k*sqr(r^2-x^2) est une ellipse.

Si vous obtenez y à partir de x et que vous le faites pivoter, vous obtenez des coins de pixels (par exemple pixel, pixel du bas et pixel de droite). Le fait de tamiser les pixels et de relier les points obtenus par une ligne aura l'air tordu. J'ai essayé un tas de façons. La seule façon agréable est la fonction y' à partir de x', si les points sont éloignés de plus d'un pixel, il faut les relier par une ligne.

 
En bref, je calculerai probablement les points du système polaire, puis j'enlèverai les points supplémentaires selon le principe des 8 liens.
 
TheXpert:
En bref, je calculerai probablement les points du système polaire, puis j'enlèverai les points supplémentaires selon le principe des 8 liens.

Je vais essayer.
 
Integer:


Si le cercle aplati et l'ellipse sont identiques, alors y=k*sqr(r^2-x^2) est une ellipse.

Si vous obtenez y à partir de x et que vous effectuez une rotation, il y aura des coins de pixels (par exemple le pixel, le pixel du bas et le pixel de droite). Le fait de tamiser les pixels et de relier les points obtenus par une ligne aura l'air tordu. J'ai essayé un tas de façons. La seule façon de faire est d'obtenir une fonction de y' à partir de x'. Si les points sont éloignés de plus d'un pixel, il faut les relier par une ligne.


Devez-vous le dessiner en une seule couleur, ou pouvez-vous l'anti-calculer ? En cas de lissage, vous pouvez chercher une implémentation prête à l'emploi de l'algorithme de Bresenham pour l'ellipse.

P.S. Voici une autre information que j'ai trouvée sur http://www.geometrictools.com/Documentation/IntegerBasedEllipseDrawing.pdf.

 
Avals:


Dois-je le faire en une seule couleur, ou puis-je le faire en trame avec anticrénelage ? En cas de lissage, vous pouvez chercher une implémentation prête à l'emploi de l'algorithme de Bresenham pour l'ellipse

P.S. Voici d'autres informations sur http://www.geometrictools.com/Documentation/IntegerBasedEllipseDrawing.pdf.


En une couleur, si vous utilisez l'anticrénelage, vous devrez tout faire avec l'anticrénelage.


* * *

Je suppose que l'ellipse ne sera pas avant la saison prochaine :)

Il y a eu un imprévu, bien sûr. Je ne l'ai pas vraiment inventé, j'ai vu comment Renat a dessiné un cercle. Vérifiez toute la zone, que le point soit à l'intérieur ou à l'extérieur de la figure. Ensuite, venez sur la figure prête à l'emploi par les quatre côtés et coloriez le contour. Ce cas présente un autre inconvénient : s'il ne s'agit pas d'une ellipse tournée, il est nécessaire de calculer et de réfléchir pour un quart. S'il s'agit d'une ellipse tournée, vous devez calculer pour la moitié de celle-ci et la refléter. Je veux aussi faire une entaille pour dessiner les secteurs et les tranches...

 

Integer:

En cas de rotation, calculer pour la moitié et réfléchir. Je veux aussi faire une encoche pour dessiner les secteurs, les tranches...

Surtout les coordonnées polaires !
 
TheXpert:
Surtout les coordonnées polaires !


En partie, mais pas tout à fait. Dans une zone carrée, pour chaque x et y, on fait d'abord une rotation, on transforme les x et y tournés en coordonnées polaires - on obtient la distance du point par rapport au centre (r) et l'angle (fi), par l'angle fi, étant donné le rayon et le coefficient on calcule la distance du point extrême de l'ellipse par rapport au centre, on compare avec r et on découvre si le point est à l'intérieur ou non.

Dans tous les cas, vous devrez le diviser en quarts ou en moitiés et réfléchir.

Si vous dessinez directement en coordonnées polaires, vous devrez nettoyer certains points plus tard, et si vous dessinez en solide, il est plus facile de le contourner par la suite. Peut-être que ce n'est pas comme ça, mais il y a manifestement plus de complications qu'il n'y paraît.