Comment dessiner une étoile (et plus) en coordonnées polaires

La question de la formule d'un polygone en coordonnées polaires se pose régulièrement sur les ressources thématiques - et reste tout aussi régulièrement sans réponse claire. Dans le meilleur des cas, on trouve une solution à travers la fonction du reste de la division - qui n'est pas "propre" d'un point de vue mathématique, puisqu'elle ne permet pas d'effectuer des transformations analytiques sur la fonction. Apparemment, les vrais mathématiciens sont trop occupés à résoudre des problèmes du millénaire et à chercher une simple preuve du théorème de Fermat pour prêter attention à ces problèmes banals. Heureusement, dans ce domaine, l'imagination est plus importante que la connaissance, et pour résoudre ce problème, vous n'avez pas besoin d'être professeur de sciences topologiques - les connaissances au niveau de l'école suffisent.



La formule d'un polygone équilatéral en coordonnées polaires semble très simple

ρ=cos(2sin1(k)+πm2n)cos(2sin1(kcos(nϕ))+πm2n)



et a les paramètres suivants:



ϕ - angle;

n - le nombre de sommets convexes;

m- détermine le nombre de sommets des côtés sur une ligne droite. Des valeurs négatives sont également autorisées pour cela - le signe déterminera dans quelle direction l'étoile se pliera;

k - rigidité - à k=0 nous obtenons un cercle indépendamment des autres paramètres, car k=1 - un polygone avec des lignes droites, à des valeurs intermédiaires de 0 avant 1- figures intermédiaires entre un cercle et un polygone.



Avec cette formule, vous pouvez dessiner une étoile de deux manières:



1)n=5,m=3





2) n=5/4,m=0... Dans ce cas, vous devez effectuer deux tours au lieu d'un:





Paramètre m affecte le polygone comme suit (ici il passe de -1 à 5):





Paramètre k en animation:





Forme complexe et modifications



Vous pouvez réécrire la formule originale sous une forme complexe et, malgré la présence d'unités imaginaires, la valeur du rayon restera toujours valide:



ρ=41/n(1k2+ik)1/n(1+(1k2+ik)2/neiπmn)(1k2cos2(nϕ)+ikcos(nϕ))1/n41/n+eiπmn(21k2cos2(nϕ)+2ikcos(nϕ))2/n



À première vue, cela peut sembler inutile, car la formule est devenue un peu plus lourde - mais ne sautez pas aux conclusions. Premièrement, il n'y a pas d'arc sinus, ce qui change complètement la signification mathématique de la formule et vous permet de regarder différemment la construction d'un polygone étoilé. Deuxièmement, il peut également être utilisé pour obtenir des formules compactes pour des cas particuliers, par exempleit(int)1/n1+(int)2/n... Troisièmement (et le plus intéressant), il peut être modifié de manière créative et obtenir d'autres formes inattendues. Pour que l'apparition d'une éventuelle composante imaginaire dans le rayon ne provoque pas d'ambiguïté dans le calcul, elle peut être immédiatement réduite en coordonnées cartésiennes en multipliant pareiϕ... Voici des exemples de certaines des modifications:



(1)2/3eiϕ(icos(3ϕ)+sin2(3ϕ))1/3(1)2/3+22/3(icos(3ϕ)+sin2(3ϕ))2/3





eiϕicos(2ϕ)+sin2(2ϕ)ei/2+2(icos(2ϕ)+sin2(2ϕ))3/2





e14i(4ϕ+π)2(1)1/4cos(2ϕ)+sin2(2ϕ)1i



Comme vous l'avez probablement remarqué, la rotation du vecteur a cessé d'être uniforme - et précisément à cause de l'apparition de la composante imaginaire dans le rayon.



Quads et trucs



Notre formule a un cas spécial merveilleux - un carré, dont la formule peut s'écrire

ρ=22+2+2cos(4ϕ)



ou

ρ=21+1sin2(2ϕ)



(choisissez celui que vous préférez).



Dans un cas un peu plus développé, vous pouvez définir des figures intermédiaires entre un cercle et un carré en passant par un point(k,k) en surface

ρ=21+1(2k21)sin2(2ϕ)k4





Vous pouvez également ajouter des variations à ces formes tout en conservant la condition qu'elles passent par le point (k,k) - moduler directement le paramètre lui-même ken fonction de l'angle de sorte qu'en passant par la diagonale, son multiplicateur est égal à un. Par exemple, en remplaçant à la placek une fonction k1zcos2(2ϕ), nous obtiendrons un paramètre supplémentaire zavec lesquels des courbes supplémentaires peuvent être ajustées. En particulier, pourz=1/4 vous obtenez ce qui suit:







Dans un cas encore plus développé, vous pouvez définir non seulement un carré, mais un rectangle, et toujours en coordonnées polaires:

ρ=4a2b2((b2a2)cos(2ϕ)+a2+b2)(14a2b2ksin2(2ϕ)((b2a2)cos(2ϕ)+a2+b2)2+1)



Et même calculer sa surface (via des intégrales elliptiques):

S=4ab(k1)K(k)+E(k)k

Remarque
k (0 1) , πab 4ab.


Cela permettra de créer des profils avec une transition d'un cercle à un rectangle avec une zone de section contrôlée. Ici, l'aire est constante:





Et ici, la zone se développe de manière exponentielle:





Aller aux coordonnées cartésiennes



Toute formule en coordonnées polaires peut être exprimée par une équation en coordonnées cartésiennes, et au moins de deux manières - en fonction de la forme du gradient sur le bord de la figure qui changera. Pour ce faire, il suffit de calculer l'angle passant par l'arc tangente des coordonnées et d'amener la formule à une constante passant par le vecteur rayon en soustrayant

0=x2+y2cos(2sin1(k)+πm2n)cos(2sin1(kcos(ntan1(x,y)))+πm2n)



ou division

1=x2+y2cos(2sin1(kcos(ntan1(x,y)))+πm2n)cos(2sin1(k)+πm2n)



La deuxième option est préférable car elle donne des dégradés droits le long des côtés du polygone.



Remarque
, (0,0) - — , , ( cos(2sin1(k)+πm2n)sec(2sin1(kcos(πn2))+πm2n) ).



cos(ntan1(x,y)) (x+iy)n+(xiy)n2(x2+y2)n/2, A034839.


La valeur de la formule du côté droit de l'équation (dans le 2ème cas) passera de 0 avant 1 si point (x,y) pénètre dans la figure, et de 1à l'infini - sinon. En choisissant différentes fonctions pour le convertir en luminosité, vous pouvez obtenir différentes options de pixellisation. Pour l'exposant (ex1 pour le premier et ex pour la deuxième option) nous obtenons

ou, si avec saturation



Un filtre passe-bas classique peut être utilisé 11+xp, dans lequel p- l'ordre du filtre, qui détermine le degré d'atténuation.



Pour la première option:



Et pour le second:



Vous pouvez également utiliser une fonction continue par morceaux en définissant explicitement les limites d'interpolation.



En plus de la pixellisation en tant que telle, vous pouvez également définir des déformations - par exemple, presser un damier dans un cercle:





Ou même le tirer sur une sphère:

Formule

x=u21+|u2v2u2+v2|



y=v1+2|u2v2u2+v2|



z=112u2(1+|u2v2u2+v2|)12v2(1+|u2v2u2+v2|)





Annexe: comment la formule a été dérivée



Le style classique de la narration dans les textes mathématiques consiste en l'alternance de lemmes / théorèmes et de leurs preuves - comme si les affirmations prouvables apparaissaient dans la tête des auteurs par une révélation d'en haut. Et bien qu'il y ait du vrai là-dedans, le plus souvent l'apparition des formules est précédée de quelques travaux de recherche dont la description peut donner une plus grande compréhension de leur signification que la preuve formelle; et l'exactitude des déclarations, à son tour, peut être tracée par l'exactitude des étapes qui y ont conduit.



Donc ici aussi - si l'article commençait par une formule sous une forme complexe, alors son apparence serait non évidente et contre-intuitive, et les propriétés déclarées nécessiteraient des preuves supplémentaires. Mais sous forme d'enregistrement trigonométrique, l'histoire de son apparition est tout à fait possible de retracer.



1) nous commençons par le cas le plus simple - la tâche de tracer une ligne droite en coordonnées polaires. Pour ce faire, vous devez résoudre l'équationrcos(ϕ)=1dont la solution est évidente rsec(ϕ)...





2) en outre, l'argument sécant doit être "bouclé" pour fournir des nœuds en ligne droite. C'est à ce stade que d'autres solutions utilisent un "dirty hack" sous la forme d'un reste de division. Il utilise également la prise séquentielle de la fonction sinusoïdale directe et inverse -sin1(sin(ϕ))





Cette approche vous permet d'effectuer des opérations mathématiques standard sur la formule résultante,
par exemple
:

sin1(sin(ϕ))ϕ=cos(ϕ)1sin2(ϕ)







Grâce à la même notation, vous pouvez simplifier la fonction carrée en coordonnées polaires pour un look plus esthétique, en utilisant la représentation complexe des fonctions trigonométriques. Dans Wolfram Mathematica, cela peut être fait en utilisant les fonctions TrigToExp et ExpToTrig:



Le code
Sec[1/2 ArcSin[k Sin[2 \[Phi]]]]^2//TrigToExp//ExpToTrig//Sqrt[#]&//FullSimplify

22+21k2sin2(2ϕ)



Grâce au même enregistrement, vous pouvez obtenir des chiffres intermédiaires lisses entre un cercle et un carré en utilisant un multiplicateur supplémentaire ken raison de laquelle l'argument sinusoïdal est inférieur à un - sin1(ksin(ϕ)):





Et pour que la fonction coupe un point donné, il vous suffit de créer une équation et de recalculer k:

21+1ksin2(π2)=k



Le code
Solve[(Sqrt[2/(1+Sqrt[1-k Sin[2 \[Phi]]^2])] /. \[Phi]->Pi/4)==x, k] /. x->k

k4(k21)k4





3) paramètres n et mont été simplement ajoutés de manière créative et leurs effets ont été étudiés expérimentalement, en fait.



4) Le rectangle est facile à obtenir en allant dans la vue paramétrique et en "étirant" les axes

x=acos(t)21+1sin2(2t)



y=bsin(t)21+1sin2(2t)



Mais après ça t ne veut plus dire angle, maintenant tEst simplement un paramètre qui décrit un vecteur à travers ses projections sur les axes de coordonnées. Pour revenir aux coordonnées polaires, vous devez trouver la longueur du vecteur (par la racine de la somme des carrés), l'angle (par l'arc tangente du rapport), exprimer cet angle parϕ et remplacez l'expression résultante à la place t...



Le code
With[{r = Sqrt[2/(1 + Sqrt[

1 - Sin[2 t]^2])]}, {Sqrt[(a r Cos[t])^2 + (b r Sin[t])^2],

ArcTan[(b r Sin[t])/(a r Cos[t])]}] // Simplify


{2a2cos2(t)+b2sin2(t)cos2(2t)+1,tan1(btan(t)a)}





Solve[ArcTan[(b Tan[t])/a]==\[Phi], t]



ttan1(atan(ϕ)b)





Sqrt[2] Sqrt[(a^2 Cos[t]^2 + b^2 Sin[t]^2)/(1 + Sqrt[Cos[2 t]^2])]

/. t -> ArcTan[(a Tan[\[Phi]])/b] // Simplify






2a2b2sec2(ϕ)(a2tan2(ϕ)+b2)(cos2(2tan1(atan(ϕ)b))+1)



Simplifier une telle formule est déjà plus difficile, et cela nécessitera plusieurs étapes:



  1. aller aux coordonnées cartésiennes en remplaçant ϕtan1(x,y);
  2. passer à la forme exponentielle;
  3. simplifier;
  4. faire un remplacement inversé xcos(ϕ) et ysin(ϕ);
  5. revenir à la forme exponentielle;
  6. simplifier.


En conséquence, nous obtenons la formule suivante:



Le code
Sqrt[2] Sqrt[(a^2 b^2 Sec[\[Phi]]^2) /

((1 + Sqrt[Cos[2 ArcTan[(a Tan[\[Phi]])/b]]^2])

(b^2 + a^2 Tan[\[Phi]]^2))] /. \[Phi] -> ArcTan[x, y]

// TrigToExp // Simplify

// # /. {x -> Cos[\[Phi]], y -> Sin[\[Phi]]} &

// TrigToExp // Simplify // FullSimplify


2a2b2((b2a2)cos(2ϕ)+a2+b2)(1+((a2+b2)cos(2ϕ)a2+b2)2((b2a2)cos(2ϕ)+a2+b2)2)









Conclusion



Comme vous pouvez le voir, même dans une chose aussi simple et banale qu'un polygone, vous pouvez trouver et proposer quelque chose de nouveau. Et l'histoire ne s'arrête pas là - la formule de l'aire pour le cas général est restée inconnue, la formule d'un polygone arbitraire, et pas seulement régulier, est restée inconnue, et l'expansion en puissance et en séries trigonométriques a été laissée sans considération. Aussi, probablement, un type similaire de formule existe pour le cas tridimensionnel.



Par conséquent, si on vous dit qu'en mathématiques tout a déjà été inventé et qu'il n'y a que des problèmes qui dépassent la compréhension d'une personne ordinaire, ne le croyez pas. Il existe de nombreux problèmes purement pratiques dont les vrais mathématiciens ne sont pas conscients, ou ils ne sont pas intéressés par leur solution en raison du manque de battage publicitaire suffisant autour d'eux, ou parce qu'ils ont déjà une idée approximative des moyens de les résoudre pour leur solution. N'ayez pas peur de vous attaquer à des problèmes dont les solutions ne sont pas disponibles sur Wikipedia, n'ayez pas peur de publier leurs solutions, et n'ayez pas peur de lire les commentaires sous les articles sur l'inutilité de tout.



PS téléchargez le document original de Mathematica ici .



All Articles