Matematica pura, fisica, chimica, ecc.: compiti di allenamento del cervello che non hanno nulla a che fare con il commercio [Parte 2] - pagina 20
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
In coordinate polari, tutto andrà bene lì. Ma quando si passa alle coordinate normali, viene fuori la stessa cosa.
Qual è la risposta breve? Devi ballare dai fornelli. Se si valuta l'area dei valori, allora la riduzione a questa forma non è necessaria.
_____________
A proposito, non è difficile ottenere i coefficienti dell'equazione.
E un'altra cosa a proposito -- l'ellisse originale prima della rotazione non è espressa da una tale funzione.
In coordinate polari, tutto andrà bene lì. Ma quando si passa alle coordinate normali, viene fuori la stessa cosa.
Qual è la risposta breve? Devi ballare dai fornelli. Se si valuta l'area dei valori, allora la riduzione a questa forma non è necessaria.
_____________
A proposito, non è difficile ottenere i coefficienti dell'equazione.
E un'altra cosa a proposito -- l'ellisse originale prima della rotazione non è espressa da una tale funzione.
Il compito è quello di disegnare un'ellisse ruotata pixel per pixel. Non un'ellisse, ma va bene anche un cerchio appiattito.
Un'ellisse e un cerchio appiattito sono la stessa cosa.
Quindi, c'è un'equazione - x^2/a^2 + y^2/b^2 = 1 - che è un'ellisse. (1)
Inoltre, c'è una trasformazione. Esprimere x y per x' y' non è un problema. Anche la sostituzione nella (1) non è un problema.
Poi facciamo un ciclo su x con incrementi di 1 e un ciclo su y con incrementi di 1.
E poi misuriamo questi punti, ed è abbastanza facile.
L'unico problema è l'area dei valori. È qui che bisogna pensarci.
Un'ellisse e un cerchio appiattito sono la stessa cosa.
Quindi, c'è un'equazione - x^2/a^2 + y^2/b^2 = 1 - che è un'ellisse. (1)
Inoltre, c'è una trasformazione. Esprimere x y per x' y' non è un problema. Anche la sostituzione nella (1) non è un problema.
Poi facciamo un ciclo su x con incrementi di 1 e un ciclo su y con incrementi di 1.
E poi misuriamo questi punti, non è così difficile.
L'unico problema è la gamma di valori. È qui che bisogna pensarci.
Se un cerchio appiattito e un'ellisse sono uguali, allora y=k*sqr(r^2-x^2) è un'ellisse.
Se si ottiene y da x e lo si ruota, si ottengono angoli di pixel (per esempio pixel, pixel inferiore e pixel destro). Qualsiasi setacciamento di pixel e il collegamento dei punti risultanti con una linea apparirà storto. Provato in vari modi. L'unico modo carino è la funzione y' da x', se i punti sono più distanti di un pixel, allora collegali con una linea.
In breve, probabilmente calcolerei i punti nel sistema polare e poi toglierei quelli extra secondo il principio dell'8-linkage.
Farò un tentativo.
Se il cerchio appiattito e l'ellisse sono uguali, allora y=k*sqr(r^2-x^2) è un'ellisse.
Se si ottiene y da x e si ruota, ci saranno degli angoli di pixel (per esempio pixel, pixel inferiore e pixel destro). Qualsiasi setacciamento dei pixel e il collegamento dei punti risultanti con una linea apparirà storto. Provato in vari modi. L'unico modo carino è in funzione di y' da x', se i punti sono più distanti di un pixel, allora collegali con una linea.
È necessario disegnarlo in un solo colore o si può fare l'antialiasing in un'immagine? Se si tratta di levigare, si può cercare un'implementazione pronta dell'algoritmo di Bresenham per l'ellisse
P.S. Ecco un'altra cosa che ho trovato su http://www.geometrictools.com/Documentation/IntegerBasedEllipseDrawing.pdf
Devo farlo in un solo colore o posso farlo in un raster antialias? Se lo smoothing, si può cercare un'implementazione pronta dell'algoritmo di Bresenham per l'ellisse
P.S. Ecco altro da http://www.geometrictools.com/Documentation/IntegerBasedEllipseDrawing.pdf
In un colore, se con l'antialiasing, dovrete fare tutto con l'antialiasing.
* * *
Immagino che l'ellisse non ci sarà fino alla prossima stagione :)
Qualcosa è venuto fuori, ovviamente. Non l'ho davvero inventato io, ho visto come Renat ha disegnato un cerchio. Controlla l'intera area, se il punto è dentro o fuori la figura. Poi avvicinatevi alla figura pronta da quattro lati e coloratene il contorno. C'è un altro inconveniente con questo caso - se non è un'ellisse ruotata, è necessario calcolare e riflettere per un quarto. Se è un'ellisse ruotata, dovete calcolare per metà di essa e rifletterla. Voglio anche fare una tacca per disegnare settori e fette...
Integer:
Se ruotato, calcolare per metà e riflettere. Voglio anche fare una tacca per disegnare settori, fette...
Soprattutto le coordinate polari!
In parte, ma non del tutto. In un'area quadrata per ogni x e y, prima ruotiamo, trasformiamo le x e y ruotate in coordinate polari - otteniamo la distanza del punto dal centro (r) e l'angolo (fi), dall'angolo fi, dato raggio e coefficiente calcoliamo la distanza del punto estremo dell'ellisse dal centro, confrontiamo con r e scopriamo se il punto è dentro o no.
In ogni caso, dovrete dividerlo in quarti o metà e riflettere.
Se disegnate subito in coordinate polari, dovrete pulire alcuni punti dopo, e se disegnate in solido, è più facile contornarlo dopo. Forse non è così, ma ovviamente ci sono più complicazioni di quanto sembri.