Arc function
hwsw famulus
hwsw at famulus.hu
Mon Mar 14 20:06:43 CET 2005
> Gyors szögfügvények használatát
> mellozo ARC(x,y,r,sa,ea) rutint
> keresnék (640,480 fb.-ig) C-ben.
> Ha tudna valaki ilyenrol, megköszönném.
>
> Üdv. Zoli
>
> -----------------------------------
>
> Alighanem a kulcszo:
> Bresenham circle
>
>
> KJ
Na, megkerestem neked a szerintem leggyorsabb
Bresenham megvalositast..........hogy
ne kelljen neked is napokig googlez-ni.
(Igaz VB6-ban van a demo, de talan ez nem gond)
Innen a tobbi nyolcadra es resz ivekre atvinni mar
csak tukrozes es feltetel vizsgalat......
KJ
------------------------------------------------------------------------------
Private Sub cdKor_Click()
'korcikket rajzol a 2. nyolcadban visszafele
'azaz 90-45 fok kozott az adott sugarral
'es origo kozepponttal
'A kor sugara
Dim R As Long
Dim Hiba As Long 'hiba valtozo
Dim X As Long
Dim Y As Long
Dim DU As Long 'hiba modosito, ha csak X lepett
Dim DD As Long 'hiba modosito, ha X es Y is lepett
R = 600
Hiba = 1 - R
X = 0
Y = R
DU = 3
DD = 5 - (2 * R)
'kezdopont kirajzol
Munkater.PSet (X, Y)
KorCikkInterpolal:
DoEvents
'Vege a 90 foktol 45 fokigtarto resznek?
If X > Y Then
Exit Sub
End If
'x mindig lep
X = X + 1
If Hiba < 0 Then
'az x-heztartozo felso y a jobb
'azaz az aktualison marad
Hiba = Hiba + DU
DU = DU + 2
DD = DD + 2
Else
'az x-heztartozo also y a jobb
'azzaz y mar lephet egyet lefele
Y = Y - 1
Hiba = Hiba + DD
DU = DU + 2
DD = DD + 4
End If
'aktualis kirajzol
Munkater.PSet (X, Y)
'Debug.Print x, y
GoTo KorCikkInterpolal
End Sub
-----------------------------------------------------------------------
More information about the Elektro
mailing list