
Wpis użytkownika Fox w Dyskusje
FoxAutorytet
1piorunówMoze mi ktoś wyjaśnić jak ten kod rysuje okrąg bo nie mogę normalnie tego objąć umysłem :confused:
"
Sub Lcd_circle(byval X As Word , Byval Y As Word , Byval Radius As Integer , Byval Color As Word)
Local X0 As Word , Y0 As Word , Error As Integer
Local Xp As Word , Yp As Word , Xe As Word , Ye As Word
Error = -radius
Xp = Radius
Yp = 0
While Xp >= Yp
X0 = X + Xp : Y0 = Y + Yp
Call Lcd_set_pixel(x0 , Y0 , Color)
X0 = X - Xp : Y0 = Y + Yp
Call Lcd_set_pixel(x0 , Y0 , Color)
X0 = X + Xp : Y0 = Y - Yp
Call Lcd_set_pixel(x0 , Y0 , Color)
X0 = X - Xp : Y0 = Y - Yp
Call Lcd_set_pixel(x0 , Y0 , Color)
X0 = X + Yp : Y0 = Y + Xp
Call Lcd_set_pixel(x0 , Y0 , Color)
X0 = X - Yp : Y0 = Y + Xp
Call Lcd_set_pixel(x0 , Y0 , Color)
X0 = X + Yp : Y0 = Y - Xp
Call Lcd_set_pixel(x0 , Y0 , Color)
X0 = X - Yp : Y0 = Y - Xp
Call Lcd_set_pixel(x0 , Y0 , Color)
Error = Error + Yp
Incr Yp
Error = Error + Yp
If Error >= 0 Then
Decr Xp
Error = Error - Xp
Error = Error - Xp
End If
Wend
>End Sub"
>
>
Komentarze (5)
@Fox to algorytm Bresenhama do rysowania okręgu
@Fox piksel po pikselu
@Fox btw: z jakiegoś powodu youtube zasugerował mi poniższy film. Tam algorytm jest nieco inny, ale również opiera się na rysowaniu pikseli na wycinku okręgu (1/8), z którego potem odbijana jest reszta.
https://www.youtube.com/watch?v=hpiILbMkF9w
The Midpoint Circle Algorithm Explained Step by StepAuf YouTube findest du die angesagtesten Videos und Tracks. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder gleich der ganzen Welt teilen.YouTube@Fox ale po co to? Zobacz, że tam wszystkie współrzędne są wartościami całkowitymi, więc chodzi zapewne o wyświetlenie pikselowatego okręgu na jakimś wyświetlaczu o małej rozdzielczości.
@MostlyRenegade ALE JAK WYLICZA OKRĄG
tu nie ma nawet żadnego wyliczenia z radianów kątów pi ani ni czego xD