Français
Experimente

So allez Antialiasing: qui Xiaolin Wu-Algorithmus (langsame XProfan-11-Version)

 

p.specht

XProfan-11 Demo-Umsetzung des Xiaolin Wu - Antialiasing-Algorithmus

... malheureusement encore avec einem leichten Bug, mais cela Prinzip wird zumindest deutlich!
Um dans vernünftiger Geschwindigkeit trop courir, devrait dans qui Praxis qui Alphakanal-Blending-qualité moderner Grafikkarten genutzt volonté!
Titre de la fenêtre "Antialiased Line (Xiaolin Wu-Algorithmus)"
'Q: https://en.wikipedia.org/wiki/Xiaolin_Wu%27s_line_algorithm
'S: https://rosettacode.org/wiki/Xiaolin_Wu%27s_line_algorithm#BBC_BASIC
Fenêtre Style 24
Fenêtre 0,0-%maxx,%maxy
screen width(%hwnd)\5,height(%hwnd)\5
set("Truecolor",0)
cls rgb(255,255,180)
drawAntiAliasedLine(20,20, 50,100,   255,0,0)
screen width(%hwnd),height(%hwnd)
Waitinput
FIN

Proc drawAntiAliasedLine

    parameters x1!,y1& , x2&,y2&, r%,g%,b%
    declare tmp&, dx&,dy&, xend&,yend!, grad!,yf!,xgap!, ix1%,iy1%, ix2%,iy2%, x%
    dx& = x2& - x1!
    dy& = y2& - y1&

    IF ABS(dx&) < ABS(dy&)

        tmp&=x1!:x1!=y1&:y1&=tmp&
        tmp&=x2&:x2&=y2&:y2&=tmp&
        tmp&=dx&:dx&=dy&:dy&=tmp&

    ENDIF

    IF x2& < x1!

        tmp&=x1!:x1!=x2&:x2&=tmp&
        tmp&=y1&:y1&=y2&:y2&=tmp&

    ENDIF

    grad! = dy& / dx&
    xend& = INT(x1! + 0.5)
    yend! = y1& + grad! * (xend& - x1!)
    xgap! = xend& + 0.5 - x1!
    ix1% = xend&
    iy1% = INT(yend!)
    plot(ix1%, iy1%, r%,g%,b%, (INT(yend!) + 1 - yend!) * xgap!)
    plot(ix1%, iy1% + 1, r%,g%,b%, (yend! - INT(yend!)) * xgap!)
    yf! = yend! + grad!
    xend& = INT(x2& + 0.5)
    yend! = y2& + grad! * (xend& - x2&)
    xgap! = x2& + 0.5 - xend&
    ix2% = xend&
    iy2% = INT(yend!)
    plot(ix2%,iy2%,   r%,g%,b%,(INT(yend!) + 1 - yend!) * xgap!)
    plot(ix2%,iy2%+1, r%,g%,b%,(yend! - INT(yend!)) * xgap!)

    Whileloop ix1%+1,ix2%-1 : x%=&Boucle

        plot(x%, INT(yf!),   r%,g%,b%, INT(yf!) + 1 - yf!)'RGBA-Format
        plot(x%, INT(yf!)+1, r%,g%,b%, yf!-INT(yf!))
        yf!=yf!+grad!

    Endwhile

ENDPROC

Proc plot : parameters X%,Y%, R%,G%,B%, A!

    var C% = GetPixel(X%*2,Y%*2)
    'imprimer int(1000*A!);
    USEPEN 0,2, R%*(1-a!) + ( C% AND 255)*a!, \
    G%*(1-a!) + ((C%>>8) AND 255)*a!, \
    B%*(1-a!) + ((C%>>16) AND 255)*a!
    'MODE "OR" wäre nachzubauen
    LINE X%*2,Y%*2 - X%*2,Y%*2

ENDPROC

 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
28.05.2021  
 



Zum Experiment


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.130 Views

Untitledvor 0 min.
Sven Bader02.08.2021
Ernst21.07.2021
Uwe ''Pascal'' Niemeier13.06.2021
Thomas Zielinski07.06.2021
plus...

Themeninformationen

cet Thema hat 1 participant:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie