Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bereich mit Farbe füllen (https://www.delphipraxis.net/16471-bereich-mit-farbe-fuellen.html)

EinMannWieEineGanzeArmee 17. Feb 2004 14:49


Bereich mit Farbe füllen
 
ich bin dabei ein program zu schreiben, welches sobald man die maus anklickt genau durch diesen punkt eine zufällige linie einzeichnet.

diese linie sollte innerhalb eines vorher gezeichneten rechtecks bleiben.
zusätzlich will ich dann die entstandenen felder mit 2 unterschiedlichen farben füllen, wobei nicht die gleichen farben nebeneinander sein dürfen.

nun treten aber probleme auf, hier erstmal grob was ich schon "erreicht" habe:

Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 label1.Caption:=inttostr(x)+'/'+inttostr(y);
 a:=x;
 b:=y;
 d:=0;
 randomize;
 c:=random(270)+50;

with canvas do
begin
 moveto(c,d);
 lineto(a,b);

 k:=a-c;
 l:=b-d;

 moveto(a,b);
 lineto(a+k,l+b);
end;
das rechteck wird folgendermassen gezeichnet:
rectangle(320,240,0,0);


die linien gehen zwar durch den angeklickten punkt, sind aber teils zu lang und teils zu kurz.
ausserdem habe ich keine ahnung wie ich die felder
(ich gehe jetzt mal von 2 linien, also ingesamt 4 feldern aus)
dann mit 2 ver. farben collorieren soll?!
dafür gibt es doch bestimmt einen einfachen befehl, oder?!

wäre super, wenn mit jemand helfen könnte!

:thuimb:

[i][edit=sakura] Statt kann man hier auch [delphi] schreiben ;-) Mfg, sakura[/edit]

MikeS 17. Feb 2004 14:52

Re: Bereich mit Farbe füllen
 
die daraus entstehenden Felder kannst du mir Floodfill siehe OH füllen!

:wink:

neolithos 17. Feb 2004 14:57

Re: Bereich mit Farbe füllen
 
Herzlich willkommen Rambo! :mrgreen:

Hinweis! Für Delphicode gibt es spezielle Delphi Tags

sakura 17. Feb 2004 15:02

Re: Bereich mit Farbe füllen
 
Zitat:

Zitat von neolithos
Hinweis! Für Delphicode gibt es spezielle Delphi Tags

Bitte in Zukunft über eine Meldung (Icon am Beitrag http://www.delphipraxis.com/template...con_report.gif) an uns Moderatoren melden.

...:cat:...

EinMannWieEineGanzeArmee 17. Feb 2004 15:07

Re: Bereich mit Farbe füllen
 
den befehl "floodfill" werde ich später ausprobieren.

den rest verstehe ich nicht,bzw. was das mit meinem problem zu tun hat.



der nick ist tradition - den kann ich nicht ändern :D

flomei 17. Feb 2004 15:09

Re: Bereich mit Farbe füllen
 
Zitat:

Zitat von EinMannWieEineGanzeArmee
den rest verstehe ich nicht,bzw. was das mit meinem problem zu tun hat.

Wenn du das mit den Code-Formatierungen meinst, dann hat das wirklich nichts mit deinem Problem zu tun...
Aber für Delphi-Code gibt es hier [ delphi ] [ /delphi ] (ohne Leerzeichen...) Tags. Die formatieren den Code und heben so schon wichtige Schlüsselwörter hervor...

MfG Florian :hi:

sakura 17. Feb 2004 15:11

Re: Bereich mit Farbe füllen
 
Zitat:

Zitat von EinMannWieEineGanzeArmee
den rest verstehe ich nicht,bzw. was das mit meinem problem zu tun hat.

Siehe Dir mal Deinen ersten Beitrag an - da habe ich die Delphi-Tags nachträglich zur Formatierung eingefügt. Ist bei uns Pflicht für Delphi-Code ;-)

...:cat:...

EinMannWieEineGanzeArmee 17. Feb 2004 15:12

Re: Bereich mit Farbe füllen
 
gut danke dafür, werde ich nächstes mal beachten!

trotzdem wäre mir hilfe jetzt wichtiger als design :D

neolithos 17. Feb 2004 15:16

Re: Bereich mit Farbe füllen
 
Ach ich verstehe!

Du willst geraden ausrechnen!

Warte mal 5 min ich muss mal in meinen Mathekenntnissen kramen.

neolithos 17. Feb 2004 15:22

Re: Bereich mit Farbe füllen
 
Skizze:

Code:
  +--------x[size=9]1[/size]-----------------+  y[size=9]o[/size]=320
  |         \                 |
  |          \                |
  |           x,y[size=9]m[/size]           |
  |            \              |
  |             \             |
  +--------------x[size=9]2[/size]-----------+  y[size=9]u[/size]=320
Zuerst Rechnen wir mal die Funktion aus:

xo ist dabei ein zufälliger Wert!

ym = m * xm + n
yo = m * xo + n

Gleichungsystem lösen:

(y - ym) * (xo - xm) = (x - xm) * (yo - ym)

Zweiten Schnittpunkte bilden:

für yu ges xu

(yu - ym) * (xo - xm) = (xu - xm) * (yo - ym)

Nach xu Umstellen:

((yu - ym) * (xo - xm)) / (xo - ym) + xm = xu


Offentlich hab ich mich nicht vertan!

Schau mal ob es geht!


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr.
Seite 1 von 2  1 2      

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