Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Idee für Algorithmus gesucht

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.10.2006, 19:52 Uhr
derphilipder



Hallo!

Folgendes Problem:

Ich habe eine Rechteckige Fläche, die sich aus Rechteckigen Teilflächen zusammensetzt ist.

Nun möchte ich gern benachbarte Teilflächen gleicher Farbe zu einem Polygon zusammenfassen.

Hat jemand ne Idee?

Gruß Philip
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.10.2006, 20:52 Uhr
ao

(Operator)



Zitat von derphilipder:
Nun möchte ich gern benachbarte Teilflächen gleicher Farbe zu einem Polygon zusammenfassen.

Bubblebreaker-Klon?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.10.2006, 22:16 Uhr
0xdeadbeef
Gott
(Operator)


Sind die Rechtecke aneinander ausgerichtet? (Will fragen, geht man hier nur mit rechten Winkeln um?) Und überlappen die Rechtecke sich, oder liegen sie nur direkt aneinander?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.10.2006, 00:47 Uhr
derphilipder



Die Rechtecke bilden ein Gitter, ohne Überlappung und nur rechte Winkel.
Wichtig ist, daß die Ecken, sowohl jedes Rechtecks, als auch jeder aus diesen Rechtecken zusammengefassten Flaeche, in der Reihenfolge eines Umlaufs gespeichert sind.
Wobei dies in der Ausgangssituation, also den einzelnen Rechtecken, gegeben ist.

Was ist Bubblebreaker?
Bei mir geht es um einen diskretisierten Quader, welcher ein Halbleiterbauteil repräsentiert, das per FDM simuliert wird (eine Hausarbeit). Dieser soll 3-Dimensional dargestellt und bewegt etc. werden. Ich habe im nachhinein festgestellt, daß bei einer Rasterung von gerade mal 100x100 pro Seite die Berechnung von 30000 Polygonen doch zu zeitaufwändig für eine flüssige Darstellung ist...insbesondere der Aufruf der Polygonzeichenmethode(Qt).
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
08.10.2006, 18:02 Uhr
0xdeadbeef
Gott
(Operator)


Wärs denn dann nicht einfacher, sich das Gitter als N^2 vorzustellen und anstelle der Eckpunkte einfach die Rechtecke (bzw. Quadrate, wenn ich das richtig verstehe) als Koordinaten zu merken?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
08.10.2006, 19:46 Uhr
derphilipder



Sorry, aber ich versteh grad nicht, was Du meinst...
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.10.2006, 20:18 Uhr
0xdeadbeef
Gott
(Operator)


Naja, wenn du ein Gitter hast, kannst du im Grunde die Rechtecke als Punkte betrachten - wie auf einem Bildschirm halt - und dir merken, welche Punkte in deinem gesammelten Kram grad drin sind.

Das was du dir vorstellst, quasi Malen nach Zahlen, funktioniert nicht für alle Fälle, weil nicht alle auf diese Art erstellbaren Gebilde sich in einer Linie zeichnen lassen (da können Löcher drin sein). Deswegen würde ich mich an deiner Stelle nach anderen Speicherungsmöglichkeiten umkucken.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
09.10.2006, 09:51 Uhr
derphilipder



Ok, mir leuchtet ein, daß sich das so leichter handhaben lässt und zudem wesentlich weniger Speicher benötigt, aber ich zeichne die Polygone mit einer Methode, die Randpunkte benötigt. Und die möchte ich nicht unbedingt selbst schreiben.
Wenn ich also die Rechtecke selbst speichere, müsste ich daraus wieder die Randpunkte ermitteln.

Ich steh aufm Schlauch...
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
09.10.2006, 10:03 Uhr
derphilipder



Mal sone Idee...wenn ein Rechteck zu einem anderen Rechteck(bzw. einem bereits zuasammengefassten Polygon) farblich passt, heißt das, daß mindestens zwei gemeinsame Punkte vorhanden sind. Da könnte ich dann doch die nicht gemeinsamen Punkte der Reihe nach zwischen den gemeinsamen Punkten einfügen. Bei mehr als zwei gemeinsamen Punkten würden dann alle ausser dem ersten und letzten entfallen.
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
09.10.2006, 12:09 Uhr
ao

(Operator)



Zitat von derphilipder:
Wenn ich also die Rechtecke selbst speichere, müsste ich daraus wieder die Randpunkte ermitteln.

Stimmt, aber ich denke, das wäre der richtige Weg. Eigentlich willst du doch die Funktionseinheiten verwalten, aus denen das IC besteht, richtig? Und die werden beschrieben durch die Lage im Gitter. Die Eckpunkte brauchst du nur, wenn du zeichnen willst, und nur dann solltest du sie berechnen.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: