Español
Fuente/ Codesnippets

Konvexe Hülle uno Punktwolke (Convex hull-Algorithm)

 

p.specht


Título de la ventana "A nonrecursive CONVEX HULL drawing algorithm"
' Demoware (C) 2012-07 by P. Pájaro carpintero - No warranties! Ohne jedwede Gewähr!
Ventana 0,0-%maxx,%maxy:font 2:var xx&=%maxx\2:var yy&=%maxy\2' :randomize
declarar u!,v!,k!,q&,nenn!,lastk!,bestpoint&,wait%,countr&,qred&
var n&=80:declarar x![n&],y![n&],i&,j&,tmp!
Nochmal:

WhileLoop n&:i&=&Loop:x![i&]=rnd(xx&)+xx&/2:y![i&]=rnd(yy&)+yy&/2:EndWhile

    WhileLoop n&:i&=&Loop:WhileLoop n&:j&=&Loop

        if x![i&]<x![j&]:tmp!=x![i&]:x![i&]=x![j&]:x![j&]=tmp!:tmp!=y![i&]:y![i&]=y![j&]:y![j&]=tmp!:endif

            EndWhile :EndWhile :usepen 0,1,rgb(200,0,0):cls:WhileLoop n&:i&=&Loop
            rectangle x![i&]+3,(y![i&]+3) - (x![i&]-3),y![i&]-3
            'drawtext x![i&],y![i&],str$(int(&Loop))

        EndWhile

        ' ROTE SEITE
        bestpoint&=1

        REPEAT

            q&=bestpoint&:lastk! = val("-1.7976931348623157E+308")

            WhileLoop q&+1,n&,1:i&=&Loop

                nenn!=x![i&]-x![q&]

                if nenn!<>0

                    k!=(y![i&]-y![q&])/nenn!

                    if k!>lastk!:lastk!=k!:bestpoint&=i&:endif

                    más

                        if y![i&]>=y![q&]:bestpoint&=i&:

                            BREAK

                        endif

                    endif

                Endwhile

                Line x![q&],y![q&] - x![bestpoint&],y![bestpoint&]

            UNTIL q&=bestpoint&

            qred&=bestpoint&
            ' BLAUE SEITE
            Usepen 0,1,rgb(0,0,200):bestpoint&=1

            REPEAT

                q&=bestpoint&:lastk! = val("1.7976931348623157E+308")

                WhileLoop q&+1,n&:i&=&Loop

                    nenn!=x![i&]-x![q&]

                    if nenn!>0:k!=(y![i&]-y![q&])/nenn!

                        if k!<lastk!:lastk!=k!:bestpoint&=i&:endif

                        más

                            if y![i&]<=y![q&]:bestpoint&=i&

                                BREAK

                            endif

                        endif

                    Endwhile

                    Line x![q&],y![q&] - x![bestpoint&],y![bestpoint&]

                UNTIL q&=bestpoint&

                ' Möglichen Fehler ausbessern:

                if bestpoint&<>qred&

                    Usepen 0,3,rgb(0,200,0)
                    Line x![qred&],y![qred&] - x![bestpoint&],y![bestpoint&]

                endif

                inc countr&:locate 1,50:imprimir countr&
                ' waitinput
                Goto "Nochmal"
                End
                ProgEnd
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
27.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

572 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