Español
Fuente/ Codesnippets

Strecken-Kollision en uno Ebene ermitteln, Kreuzung detektieren

 

p.specht

XProfan11.2a free's @between funktioniert como Kollisionserkennung sólo, si Maximal- y Minimalwerte matemáticamente korrekt a el vorgegebenen Parameterstellen gesetzt voluntad. Im nachfolgenden Programa ermittelt el 'Touch' getaufte Filter el nötigen Werte incluso.
'----------------------------------------------------------
' Kollision zweier por ihre Endpunkte gegebenen Strecken
' Der Schnittpunkt el zugehörigen Geraden se ermittelt,
' aber sólo entonces suscrito, si se 'el Klingen kreuzen'.
'----------------------------------------------------------
' Freeware como Demo, 2012-05 by Zorro Pájaro carpintero, Wien
' Nutzung en alleinige Gefahr des Anwenders/el Anwenderin!
'----------------------------------------------------------
Windowstyle 16 | 64
Ventana 0,0-%maxx,%maxy-44
font 2:set("decimals",1):set("numwidth",6)
screen 800*2,680
var xm!= %maxx/2
var ym!=(%maxy-44)/2
var f!=pi()/180
declarar w&,w!,d!' Winkel en Grad & Rad, Dicke
declarar xo!,xu!,yo!,yu!,xo2!,xu2!,yo2!,yu2!'Streckenfilter
declarar x!,y!,tmp!
declarar x1!,y1!, x2!,y2!, x3!,y3!, x4!,y4!
declarar k2!,m2!, k4!,m4!, nenner!,r!
r!=100' Zorros Rumfuchtel-Reichweite ;-)
' 2-Punkte-Gerade g1
x1!=0:y1!=0'Dummy. P1 y P4 später winkelgesteuert
x2!=-150:y2!=11
' 2-Punkte-Gerade g2
x3!= 80:y3!=-80
x4!= 60:y4!=30
Begin:

whileloop 0,360,6

    w&=&Loop:w!=f!*w&
    waitinput 60
    caso %key=27:end
    x1!=2*r!*cos(w!):y1!=r!*sin(-w!*2)
    x4!=r!*cos(3.4*-w!):y4!=2*r!*sin(2*w!)
    k2!=x2!-x1! : m2!=y2!-y1!
    k4!=x4!-x3! : m4!=y4!-y3!
    nenner! = k2!*m4! - k4!*m2!

    if nenner!<>0

        x!=( k2!*(x3!*y4!-x4!*y3!)+k4!*(x2!*y1!-x1!*y2!) ) / Nenner!

        if k2!<>0

            y!=m2!/k2!*(x!-x1!)+y1!

        endif

    endif

    ' Gráficos
    cls
    Lin x2!,y2!, x1!,y1! ,2
    Lin x4!,y4!, x3!,y3! ,2

    if touch()

        beep
        Pnt x!,y!,3

    endif

endwhile

goto "Begin"

proc Lin

    parámetros x2!,y2!,x1!,y1!,d!
    usepen 0,d!,rgb(200,0,0)
    Line xm!+x2!,(ym!-y2!) - (xm!+x1!),ym!-y1!

ENDPROC

proc Pnt:parámetros x!,y!,d!

    usepen 0,d!,rgb(200,0,0)
    rectangle xm!+x!+2+d!,(ym!-y!+2+d!) - (xm!+x!-2-d!),ym!-y!-2-d!

ENDPROC

proc touch

    var tmp&=0
    xo!=-1*10^30
    caso x1!>xo!:xo!=x1!
    caso x2!>xo!:xo!=x2!
    caso x3!>xo!:xo!=x3!
    caso x4!>xo!:xo!=x4!
    xu!=10^30
    caso x1!>xo!:xo!=x1!
    caso x2!<xu!:xu!=x2!
    caso x3!<xu!:xu!=x3!
    caso x4!<xu!:xu!=x4!
    xo2!=-1*10^30
    caso (x1!<xo!) and (xo2!<x1!):xo2!=x1!
    caso (x2!<xo!) and (xo2!<x2!):xo2!=x2!
    caso (x3!<xo!) and (xo2!<x3!):xo2!=x3!
    caso (x4!<xo!) and (xo2!<x4!):xo2!=x4!
    xu2!=10^30
    caso (x1!>xu!) and (xu2!>x1!):xu2!=x1!
    caso (x2!>xu!) and (xu2!>x2!):xu2!=x2!
    caso (x3!>xu!) and (xu2!>x3!):xu2!=x3!
    caso (x4!>xu!) and (xu2!>x4!):xu2!=x4!
    yo!=-1*10^30
    caso y1!>yo!:yo!=y1!
    caso y2!>yo!:yo!=y2!
    caso y3!>yo!:yo!=y3!
    caso y4!>yo!:yo!=y4!
    yu!=10^30
    caso y2!<yu!:yu!=y2!
    caso y3!<yu!:yu!=y3!
    caso y4!<yu!:yu!=y4!
    yo2!=-1*10^30
    caso (y1!<yo!) and (yo2!<y1!):yo2!=y1!
    caso (y2!<yo!) and (yo2!<y2!):yo2!=y2!
    caso (y3!<yo!) and (yo2!<y3!):yo2!=y3!
    caso (y4!<yo!) and (yo2!<y4!):yo2!=y4!
    yu2!=10^30
    caso (y1!>yu!) and (yu2!>y1!):yu2!=y1!
    caso (y2!>yu!) and (yu2!>y2!):yu2!=y2!
    caso (y3!>yu!) and (yu2!>y3!):yu2!=y3!
    caso (y4!>yu!) and (yu2!>y4!):yu2!=y4!
    locate 5,0:imprimir xo!,xo2!,x1!,xu2!,xu!:imprimir yo!,yo2!,y1!,yu2!,yu!
    caso (x!>=xu2!) and (x!<=xo2!) and (y!>=yu2!) and (y!<=yo2!):tmp&=1
    volver tmp&

ENDPROC

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



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

581 Views

Untitledvor 0 min.
N.Art21.07.2022
Ernst21.07.2021
Uwe ''Pascal'' Niemeier13.06.2021
R.Schneider28.05.2021
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie