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