WinFuture-Forum.de: Frage: Delphi 7 Koordinatensystem - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Frage: Delphi 7 Koordinatensystem Finde den Nullpunkt im Canvas Objekt nicht.


#1 Mitglied ist offline   lolzem88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 531
  • Beigetreten: 27. Februar 05
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:RLP - Boppard
  • Interessen:Frau, Freunde, Parties, PC

geschrieben 24. Mai 2011 - 12:52

Zunächst ein mal guten Tag die Damen / Herren :blush:


Ich habe folgendes Problem....

Wir haben hier bis zum 30. diesen Monats die Auflage ein Programm zu erstellen, welches Kreise in einem Koordinatensystem zeichnet, sobald man den ,,Erstellen"-Button klickt...Soweit nichts Wildes.

Danach soll man eine zweite Figur per Verschieben Button einfügen (beide sind dann zu sehen).
--> Die Werte für den Radius, X / Y Koordinaten werden in einem Feld eingegeben und per Erstellen bzw Verschieben Button benutzt.


Soviel zum Programm.

Nun habe ich folgendes Problemchen: Im Koordinatensystem fängt er grundsätzlich an ganz oben links zu zeichnen. Ergo müsste der Nullpunkt reversibel nach unten wo sich x und y - Achse schneiden verlegt werden.



Dazu habe ich schon extrem lange gegoogelt und selbst ausprobiert, aber ich finde es echt nicht heraus.
Hat eventuell jemand nen Tipp für mich?

Grüße,
Lars
0

Anzeige



#2 Mitglied ist offline   J000S 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.051
  • Beigetreten: 13. Juni 09
  • Reputation: 38
  • Geschlecht:Männlich
  • Wohnort:C:\Home
  • Interessen:Computer, Feuerwehr, Sport

geschrieben 24. Mai 2011 - 13:05

Das Koordinatensystem hat den Ursprung (wenn du es mal an deinem Monitor vergleichst) in der linken oberen Ecke. Ist eigentlich etwas dämlich gemacht, aber du musst deine Koordinaten ändern.
Ich bezweifle, dass man den Ursprung einfach verlegen kann. Wenn ja wird das wohl auch komplizierter sein, als die Koordinaten einfach zu ändern.
0

#3 Mitglied ist offline   TingoDingo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 121
  • Beigetreten: 25. Oktober 09
  • Reputation: 0

geschrieben 24. Mai 2011 - 13:48

Guten Tag auch von meiner Seite,

Arbeitet ihr vielleicht mit einer Klasse Bildschirm oder ähnliches?
Ich kenn das so aus dem Informatik Unterricht, dass der Bildschirm als Klasse zur Verfügung steht und dann über die Anfrage derBildschirm.hLaenge oder Sowas die Länge bekommt. Und dann muss man die aktuelle Position des Zeicheninstrumentes halt als hälfte von v und h Position setzen und um x/y verschieben.

Ist im Moment ein wenig schwierig dir zu helfen, da wir im Info Unterricht mit vordefinierten Klassen gearbeitet haben. Ob ihr das auch so macht weiß ich nicht. Ein Weg, das ganze ohne solche vordefinierten klassen ist mir nicht bekannt, da ich ausserhalb der Schule mich nicht so mit Delphi beschäftige.

Grüße
0

#4 Mitglied ist offline   lolzem88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 531
  • Beigetreten: 27. Februar 05
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:RLP - Boppard
  • Interessen:Frau, Freunde, Parties, PC

geschrieben 24. Mai 2011 - 18:09

Ne arbeiten wohl nicht mit vordefinierten Klassen.
Nagut ok, dann muss ich mit dem Fehler leben, denn ich habe echt KEINE AHNUNG wie ich das ändern kann.

Den Quelltext mag ich hier nicht posten, da es nachher heißt, ich hätte kopiert - falls der Lehrer den Beitrag hier findet :blush:

Bis denne
0

#5 Mitglied ist offline   J000S 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.051
  • Beigetreten: 13. Juni 09
  • Reputation: 38
  • Geschlecht:Männlich
  • Wohnort:C:\Home
  • Interessen:Computer, Feuerwehr, Sport

geschrieben 24. Mai 2011 - 19:31

Es ist unwahrscheinlich, dass dein Lehrer dich hier unter deinem Nickname findet :(
0

#6 Mitglied ist offline   lolzem88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 531
  • Beigetreten: 27. Februar 05
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:RLP - Boppard
  • Interessen:Frau, Freunde, Parties, PC

geschrieben 25. Mai 2011 - 11:20

Sonst jemand pauschal ne Ahnung, wo der 0 Punkt in Canvasobjekten sein könnte?

gruß,
Lars
0

#7 Mitglied ist offline   Mr. Floppy 

  • Gruppe: VIP Mitglieder
  • Beiträge: 4.115
  • Beigetreten: 01. Juli 08
  • Reputation: 271
  • Geschlecht:Männlich

geschrieben 25. Mai 2011 - 11:37

Die Frage wurde doch schon beantwortet, in der linken oberen Ecke. Angenommen Dein Canvas hat 1000x1000 Pixel. Wenn Du den Nullpunkt zum Zeichnen in die Mitte (500x500) setzen willst, muß Du alle Koordinaten entsprechend umrechnen. Ein Punkt, der bei logisch 10,20 liegen soll, ist auf dem Canvas dann bei 510,480 (500+10,500-20). Das macht man so mit allen Punkten.
0

#8 Mitglied ist offline   lolzem88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 531
  • Beigetreten: 27. Februar 05
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:RLP - Boppard
  • Interessen:Frau, Freunde, Parties, PC

geschrieben 26. Mai 2011 - 08:06

Ja ok.
Ich fände es gut, wenn ich den 0 Punkt genau nach unten links verschieben könnte, wo sich die beiden Achsen schneiden. Allerdings habe ich exakt diesen Punkt leider noch nicht erwischt.


@Mr. Floppy: falls es dir keine Umstände macht, würdest du mir den dann sagen können`?

Viele Grüße,
Lars

Dieser Beitrag wurde von dmX` bearbeitet: 26. Mai 2011 - 08:07

0

#9 Mitglied ist offline   karl0 

  • Gruppe: aktive Mitglieder
  • Beiträge: 386
  • Beigetreten: 25. März 06
  • Reputation: 4

geschrieben 26. Mai 2011 - 08:50

Hi, naja das ist doch einfach :D
ich habe nie Delphi programmiert, daher hoffe ich, dass du weißt was ich meine :)

x, canvas.height - y

dein canvas ist 100px x 100px groß.
0,0 ist ja oben links, du willst aber unten links haben.
da das canvas 100px hoch ist, ist der unterste pixel auf der Y-Achse bei 0,100

du willst jetzt 10 pixel nach oben also nach 0, 90 dann musste

0, 100 - 10 rechnen.

jetzt willst du 10 pixel nach rechts auf der X achse da nimmste

10, 100 - 10

und so weiter :D

MfG Karl0
Du bist die Nr. 1 - BLUE!!
0

#10 Mitglied ist offline   Gast 

  • Gruppe: aktive Mitglieder
  • Beiträge: 818
  • Beigetreten: 02. September 07
  • Reputation: 22

geschrieben 27. Mai 2011 - 16:23

Beitrag anzeigenZitat (dmX`: 26.05.2011, 09:06)

Ich fände es gut, wenn ich den 0 Punkt genau nach unten links verschieben könnte, wo sich die beiden Achsen schneiden.

Meinst du das mit den Koordinaten so?

Y
l
l
l
l
l
0_ _ _ _ _ _ _ _ _ _X

Dann brauchst du, wie karl0 bereits schrieb nur den Y-Wert von der Canvashöhe abziehen.

Dieses Beispiel zeichnet einen Kreis mit den Koordinaten X=200, Y=200 und einem Durchmesser von 200 Pixel.
Zur Vereinfachung mit dem Befehl Canvas.Ellipse auf einer PaintBox.

Die Formatierung wird nicht richtig dargestellt ! sagte:

procedure TForm1.Button1Click(Sender: TObject);
var
h,x,y,r: Integer;
begin
h:= PaintBox1.Height; //höhe des Canvas (in dem Fall eine PaintBox)
x:= 200; //Position auf der X-Achse
y:= h-200; //Position auf der Y-Achse (beginnt durch die Subtraktion links unten)
r:= 100; //Kreisradius
PaintBox1.Canvas.Ellipse(x-r,y-r,x+r,y+r); //zeichnet den Kreis
end;

In dem Fall geben die Koordinaten den Kreismittelpunkt an.
Falls du mit den Koordinaten etwas anderes meinst, melde dich.
Alle sagten es geht nicht, da kam einer der das nicht wusste und tat es einfach.
0

#11 Mitglied ist offline   lolzem88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 531
  • Beigetreten: 27. Februar 05
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:RLP - Boppard
  • Interessen:Frau, Freunde, Parties, PC

geschrieben 28. Mai 2011 - 13:15

Vielen Dank!

Ich werde es heute Abend testen und mich dann hier zurückmelden.

Bis dann ;(
Lars

Ok, ich fürchte ich bin einfach zu deppert dafür.

Ist es möglich, dass sich mal jemand meinen Quellcode anschaut?
Ihr braucht nix dran zu machen, nur sagen an welcher Stelle ich es verbessern könnte damit er das mit dem Canvas hinbekommt?


Falls ja, per PM schick ich euch den zu.

Gruß,
Lars


Edit: @Gast, ja so in Etwa ist es gemeint.

Dieser Beitrag wurde von Urne bearbeitet: 28. Mai 2011 - 15:03

0

#12 Mitglied ist offline   Mr. Floppy 

  • Gruppe: VIP Mitglieder
  • Beiträge: 4.115
  • Beigetreten: 01. Juli 08
  • Reputation: 271
  • Geschlecht:Männlich

geschrieben 28. Mai 2011 - 15:55

Woran scheitert's denn? Kannst Du nichts auf den Bildschirm zeichnen oder verstehst Du das mit der Umrechnung nicht?
0

#13 Mitglied ist offline   lolzem88 

  • Gruppe: aktive Mitglieder
  • Beiträge: 531
  • Beigetreten: 27. Februar 05
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:RLP - Boppard
  • Interessen:Frau, Freunde, Parties, PC

geschrieben 29. Mai 2011 - 01:41

Weis leider nicht genau wie ichs sagen soll ...ohne nen Screenshot vom Programm zu posten.
Werd den Fall wohl nun so lassen wie er ist und so hochladen.

Guts Naechtle <_<


Und danke für eure Tipps!
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0