AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche Hilfe bei einer Übung

Ein Thema von nadery · begonnen am 23. Apr 2014 · letzter Beitrag vom 24. Apr 2014
Antwort Antwort
Seite 1 von 2  1 2      
nadery

Registriert seit: 23. Apr 2014
9 Beiträge
 
#1

Brauche Hilfe bei einer Übung

  Alt 23. Apr 2014, 23:38
Hallo lieber Programmierer,

hab da ein kleines Problem bei einem Programm bin gerade dabei ein Koordinatensystem zu zeichnen und es auf eins drauf zu legen was auf einer Imagedatei bereits gezeichnet ist.
Soweit so gut hab die Koordinatenlinien hinbekommen und bin gerade bei den Skallierungsstrichen/Gitterstrichen die für die X-Achse habe ich bereits hinbekommen und habe gerade Probleme bei der Y-Achse schauts euch mal an und wer nett wen der ein oder andere einen Tipp hätte am besten Quellcode

Delphi-Quellcode:
procedure TForm2.Image1Click(Sender: TObject);
var ax,ay :INTEGER;
begin
image1.Canvas.Pen.Width:=3;
with image1.canvas do
  begin
 //Koordinaten-Linien
  moveto(79,0);
  lineto(79,321);
  moveto(79,321);
  lineto(600,321);

  //Striche x-Achse

  for ax:=1 to 9 do
    begin
      moveto(Round(92+(ax-1)*61.7),0);
      lineto(Round(92+(ax-1)*61.7),321);
    end;

   //Striche y-Achse

   for ay:=1 to 9 do
    begin
      moveto(Round(80+(ay-1)*33),89);
      lineto(Round(321+(ay-1)*33),89);
    end;
Das sieht so aus:

http://i61.tinypic.com/5xifdj.jpg

wie ihr auf dem Foto sehen könnt wiederholt sich das nicht Wieso???

Dankee
Miniaturansicht angehängter Grafiken
lioei.jpg  
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Brauche Hilfe bei einer Übung

  Alt 23. Apr 2014, 23:48
Schau dir mal die LineTo und die MoveTo Procedure an.

Du musst natürlich auch entsprechend für die Y-Achse die Koordinaten von Y verändern und nicht von X.

Delphi-Quellcode:
for ay:=1 to 9 do begin
  moveto(89, Round(80+(ay-1)*33));
  lineto(89, Round(321+(ay-1)*33));
end;
Ob die Werte jetzt so stimmen weiß ich natürlich nicht. Aber der zweite Parameter der Funktion muss jeweils geändert werden bei Y und nicht der erste.
  Mit Zitat antworten Zitat
nadery

Registriert seit: 23. Apr 2014
9 Beiträge
 
#3

AW: Brauche Hilfe bei einer Übung

  Alt 23. Apr 2014, 23:58
auf deine Art und Weise werden die Striche jetzt leider wieder Senkrecht und nicht Waagerecht wie ich es haben will...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#4

AW: Brauche Hilfe bei einer Übung

  Alt 24. Apr 2014, 00:13
Delphi-Quellcode:
MoveTo(Round(92 + (ax-1)*61.7), 0);
LineTo(Round(92 + (ax-1)*61.7), 321);

//MoveTo(Round(80 + (ay-1)*33), 89);
//LineTo(Round(321 + (ay-1)*33), 89);
MoveTo(89, Round(80 + (ay-1)*33));
LineTo(89, Round(321 + (ay-1)*33));
Fällt dir was auf?
Vorallem bei der falschen Reihenfolge der X- und Y-Werte, sieht man, daß bei AY etwas nicht stimmt.

Damit die Linie "grade" ist, muß hochzählende Position am Anfang und Ende gleich sein
und die feste Achse enthält unterschiedliche Werte.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

AW: Brauche Hilfe bei einer Übung

  Alt 24. Apr 2014, 00:33
Canvas bei Delphi hat keine richtige Linie. Das sollte aber kein Problem sein, das kann man sich schnell selbst basteln:
Delphi-Quellcode:
procedure CanvasLine(Canvas: TCanvas; x1, y1, x2, y2: Integer);
begin
  Canvas.MoveTo(x1, y1);
  Canvas.LineTo(x2, y2);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  CanvasLine(Self.Canvas, 100, 100, 100, 500);
  CanvasLine(Self.Canvas, 100, 500, 500, 500);
  CanvasLine(Self.Canvas, 500, 500, 500, 100);
  CanvasLine(Self.Canvas, 500, 100, 100, 100);
end;
Auf der anderen Seite, wenn man mit LineTo umgehen kann, hat das seine Logik:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  with Canvas do
  begin
    MoveTo(110, 110);
    LineTo(110, 510);
    LineTo(510, 510);
    LineTo(510, 110);
    LineTo(110, 110);
  end;
end;
Wenn es keine einzelne Line sein soll und vorhandene Formen nicht reichen, gibt es auch das Polygon:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  PunktListe: array[0..4] of TPoint;
begin
  PunktListe[0] := Point(120, 120);
  PunktListe[1] := Point(120, 520);
  PunktListe[2] := Point(520, 520);
  PunktListe[3] := Point(520, 120);
  PunktListe[4] := Point(120, 120);

  with Canvas do
  begin
    Pen.Color := clRed;
    Brush.Color := clYellow;
    Brush.Style := bsSolid;

    Polygon(PunktListe);
  end;
end;
  Mit Zitat antworten Zitat
nadery

Registriert seit: 23. Apr 2014
9 Beiträge
 
#6

AW: Brauche Hilfe bei einer Übung

  Alt 24. Apr 2014, 00:36
Das problem ist doch nich das sie nicht gerade ist mein Problem ist doch sie sich nicht wiederholt?^^

Sry stehe gerade auf dem Schlauch

villt kannste ja die richtige Schreibweise als Quellcode posten villt hab ich dann nen Gedankenblitz...
  Mit Zitat antworten Zitat
nadery

Registriert seit: 23. Apr 2014
9 Beiträge
 
#7

AW: Brauche Hilfe bei einer Übung

  Alt 24. Apr 2014, 00:38
@popov huch was ist das den alles es steht doch schon fast alles fehlt nur noch die Y-Achse
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#8

AW: Brauche Hilfe bei einer Übung

  Alt 24. Apr 2014, 00:45
Das problem ist doch nich das sie nicht gerade ist mein Problem ist doch sie sich nicht wiederholt?^^
Doch, sie wiederholt ich, aber wenn du alles übereinander malst, dann sieht das nunmal so aus, als gäbe es nur eines Line.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
nadery

Registriert seit: 23. Apr 2014
9 Beiträge
 
#9

AW: Brauche Hilfe bei einer Übung

  Alt 24. Apr 2014, 00:52
Hast du eine Lösung für das Problem?^^
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#10

AW: Brauche Hilfe bei einer Übung

  Alt 24. Apr 2014, 00:57
Komm wir essen Opa (Satzzeichen können Leben retten)

Paar Satzzeichen in den Sätzen wären nicht falsch. Es ist schon etwas respektlos den anderen gegenüber, wenn sie alles erst deuten müssen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:57 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