Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Vier 2d Vectoren von innen befüllen?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
0oFreako0



Anmeldungsdatum: 17.12.2011
Beiträge: 114

BeitragVerfasst am: 05.09.2013, 22:11    Titel: Vier 2d Vectoren von innen befüllen? Antworten mit Zitat

Hi ich probiere mich mal ein bischen im Vector Raum.
ich wollte vier Vectoren positionieren die dann innerlich gefüllt werden.
Ich dachte da mit einem Algo der linien zieht solang bis das innere der vier vectoren befüllt sind auch wenn diese sich diagonal gegenüber
stehen. Zb so:
[list]

Code:

   V1                v2
   +                   +
 

                              +v4
       +
     v3
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 06.09.2013, 07:53    Titel: Antworten mit Zitat

Ganz so easy ist das nicht. Aber, wenn du dich selbst daran versuchen magst, dann verweise ich hier mal auf den Begriff "Polygon-Fill-Algo" ... damit macht man sowas.

Prinzipiel ist es ansich eigentlich einfach, aber die umsetzung und die x verschiedenen algos die es hierzug gibt haben alle recht kuriose vor und nachteile.

PS: Falls du nen algo in fb brauchst, kann ich dir einen zukommen lassen. zwinkern


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 10.11.2013, 12:42    Titel: Antworten mit Zitat

Habe vor kurzem selber ein verwandtes Problem bearbeitet. Mein Herangehen in etwa:
(1) Du suchst dir die maximalen/minimalen x/y-Koordinaten, und definierst damit den kartesischen Raum, in dem dein Polygon liegt. In deinem Beispiel wäre das also z. B. v1, und ein Punkt P, der genau unterhalb von V4 auf Höhe von v3 liegt.
(2) Diesen Bereich scannst du Zeilenweise ab. Jedesmal, wenn der "Scan-Cursor" eine deiner Begrenzungslinien schneidet, schaltest du ein Flag zwischen den Werten Wahr und Falsch um. Das Umschalten tritt auch dann ein, wenn du auf einen Punkt triffst, nicht aber, wenn du dich auf derselben Linie fortbewegst (e. g. von V1 nach V2). Startwert ist immer null/falsch.
(3) Überall da, wo dein Flag den Wert Wahr/-1 hatte, setzt du einen Pixel, ansonsten lässt du den Bildschirm/Grafikpuffer wie er ist.

Für (2) brauchst du ein bisschen lineare Algebra, aber das sollte nicht zu schwer sein. Das Herangehen funktioniert für beliebig komplexe Polygone und erlaubt auch sich kreuzende Linien.

Ich hoffe, das kommt für dich nicht allzu spät zwinkern
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz