Français
Source/ Codesnippets

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

 

p.specht


Titre de la fenêtre "A nonrecursive CONVEX HULL drawing algorithm"
' Demoware (C) 2012-07 by P. Specht - No warranties! sans jedwede Gewähr!
Fenêtre 0,0-%maxx,%maxy:font 2:var xx&=%maxx\2:var yy&=%maxy\2' :randomize
declare u!,v!,k!,q&,nenn!,lastk!,bestpoint&,wait%,countr&,qred&
var n&=80:declare x![n&],y![n&],i&,j&,tmp!
Nochmal:

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

    WhileLoop n&:i&=&Boucle:WhileLoop n&:j&=&Boucle

        si 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&=&Boucle
            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&=&Boucle

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

                si nenn!<>0

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

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

                    d'autre

                        si 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&=&Boucle

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

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

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

                        d'autre

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

                                BREAK

                            endif

                        endif

                    Endwhile

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

                UNTIL q&=bestpoint&

                ' Möglichen faute ausbessern:

                si bestpoint&<>qred&

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

                endif

                inc countr&:locate 1,50:imprimer countr&
                ' waitinput
                Goto "Nochmal"
                Fin
                ProgEnd
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
27.04.2021  
 



Zum Quelltext


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

582 Views

Untitledvor 0 min.
N.Art21.07.2022
Ernst21.07.2021
Uwe ''Pascal'' Niemeier13.06.2021
R.Schneider28.05.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