AGB  ·  Datenschutz  ·  Impressum  







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

Koordinatentransformation?

Ein Thema von Jamez · begonnen am 21. Jun 2006 · letzter Beitrag vom 21. Jun 2006
Antwort Antwort
Jamez

Registriert seit: 21. Jun 2006
2 Beiträge
 
#1

Koordinatentransformation?

  Alt 21. Jun 2006, 19:14
Hallo!
Ich bin erst seit wenigen Tagen mit Delphi vertraut, und habe nun bei der Entwicklung eines Programmes ein Problem. Im Prinzip geht es darum, dass ich einen Kanonenschuss graphisch darstellen soll. die Oberfläche habe ich gestaltet und ich bekomme auch werte raus, wenn ich winkel und geschwindigkeit in edits eingebe. nun weiss ich aber nicht, wie ich die zwei werte in eine paintbox übertragen bekomme.es muss also, wenn ich auf berechnen klicke, die wert und zusätzlich eine kurv herauskommen???
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#2

Re: Koordinatentransformation?

  Alt 21. Jun 2006, 20:00
Nun, die Funktion wirst du ja sicherlich haben.

Also speicherst du dir einen x-Wert und lässt dir den dazugehörigen y-Wert ausrechnen. Beide speicherst du als TPoint zum Beispiel. Dann führst du
Box.Canvas.MoveTo(ObigeKoordinaten.X,PBox.Height-y);
aus. Daraufhin muss nur die nächste Koordinate berechnet werden (also x um einen möglichst kleinen Wert erhöht (z.B. 1px)) und dann
PBox.Canvas.LineTo(NeuesX,PBox.Height-NeuesY);


Nun musst du den LineTo-Befehl nur noch für alle weiteren Werte bis PBox.Width ausführen. Zu beachten ist, dass das Koordinatensystem eines Canvas _oben_ beginnt!

Deshalb nicht einfach den y-Wert nehmen
  Mit Zitat antworten Zitat
Jamez

Registriert seit: 21. Jun 2006
2 Beiträge
 
#3

Re: Koordinatentransformation?

  Alt 21. Jun 2006, 20:06
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, math, ExtCtrls;

type
TKanonenschusssimulator = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Label3: TLabel;
Label4: TLabel;
Edit3: TEdit;
Edit4: TEdit;
Button2: TButton;
Button3: TButton;
PaintBox1: TPaintBox;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure oncreate(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Kanonenschusssimulator: TKanonenschusssimulator;

implementation

{$R *.dfm}

procedure TKanonenschusssimulator.Button1Click(Sender: TObject);
var v,P,g,x,y: double;
begin
// Eingabe von v und P
v:=StrToFloat (Edit1.Text);
P:=DegToRad(StrToFloat (Edit2.Text));
// Setzen der Werte von g und t
g:=9.81;
// Berechnung von x und y
y :=sqr(v*sin(P))/(2*g);
x :=sqr(v)*sin(2*P)/g;
// Ausgabe von x und y
Edit3.Text:=FloatToStrf(x,ffFixed,10,2);
Edit4.Text:=FloatToStrf(y,ffFixed,10,2);
end;

procedure TKanonenschusssimulator.Button3Click(Sender: TObject);
begin
close
end;

procedure TKanonenschusssimulator.Button2Click(Sender: TObject);
begin
edit1.text:='0';
edit2.text:='0';
edit3.text:='0';
edit4.text:='0';

end;

procedure TKanonenschusssimulator.oncreate(Sender: TObject);
begin
with Paintbox1.Canvas do
begin
Brush.Color:=clWhite;
Rectangle(0,0,Width,Height);
Pen.Width:=2; Pen.Color:=clBlack;
end;
end;
end



also das ist das was ich bis jetzt habe. ich weiss echt net richtig weiter. muss ich den befehl unter der paintbox weiter bearbeiten oder unter dem button, der die grafik aufrufen soll?
und wie mach ich denn die achsen in die paintbox?
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:25 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