Français
Experimente

représentation rotierender 3D-Drahtobjekte sans OGL

 

p.specht


'  Erste Gehversuche avec einfachen 3D-Drahtobjekten [P. Specht 1997] - angepasst sur
'  indépendant Rotation avec Bildschirmpuffer [J. Strobl 2013]
Déclarer a!, b!, c!, x!,y!,z!, xx!,yy!,zz!, ca!,cb!,cc!,sa!,sb!,sc!
Déclarer a11!,a21!,a31!,a12!,a22!,a32!,a13!,a23!,a33!
Déclarer xr!,yr!,zr!,gr!,dist!, ur!,p&,xv!,yv!,i&,j&
Déclarer x0!,y0!,z0!,x1!,y1!,z1!, u0!,v0!,u1!,v1!
Déclarer s0&,s1&,p0!,p1!
Déclarer e&,Eckpunkte#, v&, Verbindungen#
Déclarer hScrBuffer&
Déclarer elapsedTime&, lastMesuredTime&
Déclarer msecAccumulator&
Fenêtre Style 2 | 8 | 16
Fenêtre 0,0 - 512, 384
' Initialisieren
@Set("TrueColor", 1)
Randomiser
ur!=Pi()/180
'  la mesure Realobjekt trop Modell
gr! = 30
'  Stegfarbe
' Stopvariable, par ESC-bouton gesetzt
hScrBuffer& = @Créer("hNewPic", Width(%hwnd), Height(%hwnd), 0)
i&=0
lastMesuredTime& = &gettickcount
Utilisateur Messages 16

WhileNot i&

    'Cls @Rgb(240,240,255)
    'Localiser 0,0:Imprimer "Mausklick! Ende avec ESC-Taste"
    '  Entfernung (Mittlerer Betrachtungs-Vorversatz)
    'dist! = Tour(300) + 300
    dist! = 600
    ' Zufälliger Versatz dans x et y direction (pouvoir Ergebnis interessanter)
    'xv! = @Tour(150) - 100
    'yv! = @Tour(200) - 100
    '  Zufällige Euler-Drehwinkel pour qui Szene erzeugen
    'a! = (Tour(180) - 90) * ur!
    'b! = (Tour(40) - 20) * ur!
    'c! = (Tour(80) - 20) * ur!
    elapsedTime& = &gettickcount - lastMesuredTime&
    lastMesuredTime& = &gettickcount
    msecAccumulator& = msecAccumulator& + elapsedTime&

    Si msecAccumulator& > 500

        SetText %hwnd, "Framerate: " + @Str$((1 / elapsedTime& * 1000) \ 1) + " FPS"
        msecAccumulator& = msecAccumulator& - 500

    EndIf

    a! = a! + ur! * (elapsedTime& / 25)
    b! = b! + ur! * (elapsedTime& / 25)
    c! = c! + ur! * (elapsedTime& / 25)
    '  Streckeneinheit gemäß obigen Drehwinkeln dans qui trois
    '  Ebenen (Grundriss, Aufriss, Seitenriss) projizieren
    '      Vorbereitung Variablenaufruf statt laufende Winkel-Neuberechnung
    ca! = Cos(a!) : cb! = Cos(b!) : cc! = Cos(c!)
    sa! = Sin(a!)  : sb! = Sin(b!) : sc! = Sin(c!)
    '      Rotationsfaktoren qui Bewegungsmatrix berechnen
    a11! = ca! * cb!
    a21! = cc! * sb! + sc! * sa! * cb!
    a31! = sc! * sb! - cc! * sa! * cb!
    a12! = -1 * ca! * sb!
    a22! = cc! * cb! - sc! * sa! * sb!
    a32! = sc! * cb! + cc! * sa! * sb!
    a13! = sa!
    a23! = -1 * sc! * ca!
    a33! = cc! * ca!
    '    Translation des Modells, si gewünscht
    xx! = 0
    yy! = 0
    zz! = 0
    '   3D-Modell eines Papierflugzeugs (possible um den Schwerpunkt!)
    e& = 14' numéro qui Eckpunkte
    Faible Eckpunkte#, e& * 3 * 8
    Float Eckpunkte#,0 = 0,-2,18, 0,-2,-3, -1,0,-3, -1,0,14, 1,0,14, 1,0,-3, -4,0,-3, -4,0,1, -5,1,-2, -5,1,-3, 4,0,1, 4,0,-3, 5,1,-3,  5,1,-2
    v& = 19' numéro qui Verbindungsstege
    Faible  Verbindungen#, v& * 2 * 2
    Word Verbindungen#,0 = 0,1, 1,2, 2,3, 3,0, 0,4, 4,5, 5,1, 3,7, 7,6, 6,2, 7,8, 8,9, 9,6, 4,10, 10,11, 11,5, 10,13, 13,12, 12,11
    Début de peinture hScrBuffer&
    USEP 0,2, @Rgb(255, 0, 0)
    Cls @Rgb(240,240,255)
    DrawText 0, 0, "Beenden avec ESC"
    j& = 0

    Tandis que j& < v&

        s0& = @Word( Verbindungen#, j& * 4)
        x! = gr! * @Float( Eckpunkte#, 24 * s0&)
        y! = gr! * @Float( Eckpunkte#, 24 * s0& + 8)
        z! = gr! * @Float( Eckpunkte#, 24 * s0& + 16)
        xr! = xx! + a11! * x! + a12! * y! + a13! * z!
        yr! = yy! + a21! * x! + a22! * y! + a23! * z!
        zr! = zz! + a31! * x! + a32! * y! + a32! * z!
        x0! = xr! + xv! : y0! = yr! + yv!  : z0! = zr! + dist!
        s1& = @Word( Verbindungen#, j& * 4 + 2 )
        x! = gr! * @Float( Eckpunkte#, 24 * s1&)
        y! = gr! * @Float( Eckpunkte#, 24 * s1& + 8)
        z! = gr! * @Float( Eckpunkte#, 24 * s1& + 16)
        xr! = xx! + a11! * x! + a12! * y! + a13! * z!
        yr! = yy! + a21! * x! + a22! * y! + a23! * z!
        zr! = zz! + a31! * x! + a32! * y! + a32! * z!
        x1! = xr! + xv! : y1! = yr! + yv! : z1! = zr! + dist!
        '  dans 3D-Endstellung gebrachte Stegpunkte sur Ausgabebereich projizieren
        u0! = x0! * 192 / z0! + 250
        v0! = 192 - y0! * 192 / z0!
        u1! = x1! * 192 / z1! + 250
        v1! = 192 - y1! * 192 / z1!
        ' Drahtsteg zeichnen
        Line u0!,v0! - u1!,v1!
        ' prochaine Steg!
        Inc j&

    Endwhile

    EndPaint
    DrawPic hScrBuffer&, 0, 0; 0
    'WaitInput
    Cas @Iskey(27) : i&=1
    Cas %umessage = 16 : i&=1

Endwhile

' Fertig
Dispose Eckpunkte#
Dispose Verbindungen#
Fin
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
09.05.2021  
 




RudiB.
cela erinnert mich à meinen ATARI 1024 ST.
là lief aussi so un Drahtgitter-Modell (une église) sur GFA-Basic.
j'étais autrefois simple seulement faziniert.....
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
09.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

772 Views

Untitledvor 0 min.
p.specht16.06.2022
Sven Bader01.02.2022
Ernst21.07.2021
Uwe ''Pascal'' Niemeier13.06.2021
plus...

Themeninformationen

cet Thema hat 2 participant:

RudiB. (1x)
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