![]() |
Beliebige Fläche füllen
Hallo Leute,
Ich habe folgendes Problem. Ich schreibe mir gerade eine Art Grafikprogramm in der es möglich ist dreidimensional zu zeichnen. Ich wollte dies zu reinen Übungszwecken OHNE OpenGL, DirectX oder so schreiben. Nun ist es aber so dass ich eine beliebige Fläche über eine andere legen möchte und diese dann transparent durchschimmert. Das zu bewerkstelligen habe ich auch hinbekomme, allerdings muss ich dafür alle Punkte INNERHALB dieser Fläche durchgehen. Klappen tut das auch, allerdings leidet die Performance sehr darunter. FloodFill geht nicht, weil ich ja keine festen Flächen habe, auch ScanLine geht nicht, weil ich mit ner PaintBox arbeite. Hoffe es kann mir jemand helfen Gruß Urba |
Re: Beliebige Fläche füllen
nee, weiß leider nicht weiter, abba....
wie kann man in ner paintbox 3d zeichnen?! (ohne DX oder OpenGL)? |
Re: Beliebige Fläche füllen
Hallo MasterRC,
neue Frage -> Neuer Thread. Das hat überhaupt nichts mit Urbas Problem zu tun. Greetz alcaeus |
Re: Beliebige Fläche füllen
Hallo,
Hat denn keiner irgendeine Idee. Ich dachte eigentlich das in DIESEM Forum schon mehr Leute sowas mal selber probiert haben / wollten und daher eigentlich auf ein vergleichbares Problem stoßen mussten. Wenn es so nicht geht, wie macht das dann OpenGL oder DirectX, die sind zwar Hardwarebasierender, aber sie müssen es ja auch irgendwie machen ?! @Master_RC : alcaeus hat Recht -> neuer Thread. Aber überleg dir doch wie das OpenGL etc. machen. Die müssen es auch irgendwie berechnen und dann auf ne 2D Oberfläche zeichnen, genau das hab ich auch gemacht. Gruß Urba |
Re: Beliebige Fläche füllen
Zitat:
Ich würde mir für sowas dann eher einen Buffer machen, in diesen die Fläche deckend zeichnen, und dann halbtransparent auf den Canvas zeichnen. Ohne 3D-Gedöns wird man das zwar nie so schnell bekommen wie mit DirectX/OpenGL/etc., aber mein Grafik-General-Tipp, die ![]() Zitat:
Wie gesagt, ich würde erst deckend in einen Buffer zeichnen, und dann in einem Rutsch den Buffer tranzparent übertragen. (Bei der Graphics32: TBitmap32.DrawTo(Canvas: TCanvas); und TBitmap32.DrawMode = dmBlend, und einen gewünschten MasterAlpha-Wert für die Deckkraft angeben. Am besten mal in die zugehörige Hilfe+Beispielprojekte gucken, es gibt mehrere Möglichkeiten da dran zu gehen. Layers wären u.U. auch was für dich.) Gruss, Fabian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz