AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Eine Eigene Linen Zeichnen ?

Eine Eigene Linen Zeichnen ?

Ein Thema von mimi · begonnen am 2. Nov 2007 · letzter Beitrag vom 4. Nov 2007
Antwort Antwort
Seite 3 von 3     123
Muetze1
(Gast)

n/a Beiträge
 
#21

Re: Eine Eigene Linen Zeichnen ?

  Alt 3. Nov 2007, 18:38
Zitat von mimi:
Du meinst damit ist sowas schon möglich ? von Windows aus ? Bunte Linen ?
Wie gesprochen: Du musst eine Callback Funktion angeben und diese wird für jeden einzelnen Punkt mit dessen Koordinaten aufgerufen. Wie du diesen Punkt mals liegt in deiner Hand und somit kannst du diese doch malen wie du es willst. Das Beispiel zeigt doch schon auf, was möglich ist. Ich lasse mit der LineDDA() Funktion die 4 Linien ständig zeichnen und beim Zeichnen bestimmte ich nur, ob ich den jeweiligen Pixel nun zeichne oder nicht. Dabei wird immer wieder eine Verschiebung reingebracht, wass dann zu dem gezeigten Effekt der "marschierenden Ameisen" führt. Siehe EXE/Code.

/EDIT: roter Kasten?

SirThomberry trifft es genau.
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#22

Re: Eine Eigene Linen Zeichnen ?

  Alt 3. Nov 2007, 18:43
ich habe mir dein Beispiel noch einmal angesehen und mir ist ein Licht aufgegangen...

Aber leider nützt er mir wenig da ich unter Lazarus keine LineDDA Procedure habe.

Ich könnte allerdings den Code entsprechend umbauen... Wenn ich wollte.

Naja, dann nochmal VIELEN DANK.
ich glaube jetzt weiß ich wie LineDDA Arbeitet, hatte es beim ersten hinsehen nicht ganz verstanden aber jetzt schon. Unter Delphi währe das eine Erleichterung gewesen.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#23

Re: Eine Eigene Linen Zeichnen ?

  Alt 3. Nov 2007, 18:49
Zitat von mimi:
Aber leider nützt er mir wenig da ich unter Lazarus keine LineDDA Procedure habe.
Hatte ich ja schon vermutet. Hätte mich gewundert, wenn es so wäre.

Aber nun habe ich in der Zwischenzeit mal ein Beispiel von dem Marching Ants Beispiel abgeleitet mit einer bunten Linie. Vielleicht hilft es dir ja, um die Farbwerte zu bilden.
Angehängte Dateien
Dateityp: zip delphi_-_homepage_-_coloredlines_120.zip (156,1 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#24

Re: Eine Eigene Linen Zeichnen ?

  Alt 3. Nov 2007, 18:54
nicht schlecht... das habe ich so hinbekommen:
Delphi-Quellcode:
procedure DrawRect(const aCanvas:TCanvas; const x1,y1,x2,y2:Integer; const AColor: TColor; const LinenStyle:array of Boolean; const FarbSyle:array of TColor);
begin

  // Oben
  DrawLine(aCanvas,x1,y1,x2,y1,AColor,LinenStyle,FarbSyle);

  // Unten
  DrawLine(aCanvas,x1,y2,x2,y2,AColor,LinenStyle,FarbSyle);

  // Links
  DrawLine(aCanvas,x1,y1,x1,y2,AColor,LinenStyle,FarbSyle);

  // Rechts
  DrawLine(aCanvas,x2,y1,x2,y2,AColor,LinenStyle,FarbSyle);
end;
Auf diese art und weise kann ich ebenfalls ein Viereck zeichnen....
Was mit Bunten Linen und Stylen klar kommt. Das einzigte Problem was ich noch haben sind Füllmuster.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#25

Re: Eine Eigene Linen Zeichnen ?

  Alt 4. Nov 2007, 08:02
Schau Dir einfach den Bresenham-Algorithmus an, das ist eigentlich der Algorithmus, der in so ziemlich heder Graphics-Engine implementiert ist. Er benötigt keine Floatingpoint-Mathematik und ist imho der schnellste Algorithmus.
Hier in der DP
Wiki
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#26

Re: Eine Eigene Linen Zeichnen ?

  Alt 4. Nov 2007, 15:02
Floatingpoint-Mathematik
die kenne ich gar nicht....

Danke ! Den Wiki Aktikel kannte ich schon, der hat mir nicht weiter geholfen, wegen den Formeln die ich verstehe, weil ich nicht weiß wie ich sie lesen muss

Der Andere link könnte Hilfreich sein. Vielen Dank dafür.....
Weil ich möchte wie schon gesagt noch weitere Figuren selbst zeichnen wie z.b. ein Kreis.Ich habe gelesen das kann der Bresenham-Algorithmus ebenfalls.

edit00:
Delphi-Quellcode:
if dy >= 0 then // positive Steigung
    if dx >= dy then // leichte positive Steigung
      for x := P1.X to P2.X do
      begin
        Plot(x,y);
        if 2*(e + dy) < dx then
          Inc(e,dy)
        else
        begin
          Inc(y);
          Inc(e, dy-dx);
        end;
      end
    else
Diesen Teil verstehe icn noch nicht ganz: was passiert genau bei 2*(e+dy) ?
ich weiß das es sich hierbei um eine Berechnung handelt. aber zu welchem Zweck ?
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#27

Re: Eine Eigene Linen Zeichnen ?

  Alt 4. Nov 2007, 15:27
Zitat von mimi:
Floatingpoint-Mathematik
die kenne ich gar nicht....
Floatingpoint = Gleitkommazahl . Soll heißen, der Algo benötigt die FPU überhaupt nicht. Genauer gesagt benötigt er nicht einmal mehr als Addition und Bit-Shifting.

Zitat:
Danke ! Den Wiki Aktikel kannte ich schon, der hat mir nicht weiter geholfen, wegen den Formeln die ich verstehe, weil ich nicht weiß wie ich sie lesen muss
Unter "Ansatz" lässt sich nur eine einzige Formel finden und die ist zur mathematischen Ergänzung.

Zitat:
Diesen Teil verstehe icn noch nicht ganz: was passiert genau bei 2*(e+dy) ?
Dazu müsstest du schon das verlinkte Tutorial durchlesen. Die Erklärung bei Wikipedia ist aber wirklich einfacher und kommt ganz ohne Formeln aus.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#28

Re: Eine Eigene Linen Zeichnen ?

  Alt 4. Nov 2007, 15:40
naja, dann muss ich die Funktion mal bei Gelegenheit auseinander nehmen, Zeile für Zeile.
Aber die Beispiel Soruce Sagen mir im Moment recht wenig.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz