AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ablauffehler, Hilfe

Ein Thema von sweety · begonnen am 24. Jan 2007 · letzter Beitrag vom 24. Jan 2007
 
sweety

Registriert seit: 21. Jan 2007
3 Beiträge
 
#1

Ablauffehler, Hilfe

  Alt 24. Jan 2007, 00:09
Hallöchen
Habe es geschafft einen Quelltext zu erstellen, wo ich dachte der funktioniert, tut er aber noch nicht so wirklich.
Mein Schmuckstück:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var w,wh,ws,xdel,ydel,lange,wlast,wd,xs1,ys1: real;
    xvorz,yvorz: boolean; //vorzeichen delta xy bestimmen
    i:integer;
    xs,ys:array[1..40] of integer;
    dist:string;
    radtodeg:Extended;
begin
 for i:=1 to n do
   w:=StrToFloat(edit1.Text); //umrechnen in pi und volle winkel

 if w <=180 then wh:=((w/180)*pi)
     else wh:=-(((w-180)/180)*pi);
     ws:=sin(wh);

 for i:=1 to n do
  begin //x-werte differenz zu ersten n-punkt, ersten punkt holen und mit x-werte subtraieren
   xdel:=xp[n-i]-xp[n];//delta x-wert n-i
   ydel:=yp[n-i]-yp[n];//delta y-wert

   //bestimmen der vorzeichen
   if xdel>0 then xvorz:= true else xvorz:= false;
   if ydel>0 then yvorz:= true else yvorz:= false;

   //berechnung neuwert sin bzw. cos
   lange:=sqrt((xdel*xdel)+(ydel*ydel));
   wlast:=(radtodeg(arctan*(ydel/xdel)));//winkel von n x-achse zu punkt

   //4.Quatrant
   if (xvorz and yvorz)=true then wd:= wlast-w;

   //3.Quatrant
   if xvorz=false then
    begin
    if yvorz=true then wd:=180+wlast-w;
    end;

   //2.Quatrant
   if xvorz=false then
    begin
    if yvorz=false then wd:=180+wlast-w;
    end;

   //1.Quatrant
   if xvorz=true then
    begin
    if yvorz=false then wd:=(wlast-w);
    end;
   wd:=degtorad(wd);//drehwinkel x-achse in rad

   //richtungssinn der winkel
   xs[1]:=xp[n];
   ys[1]:=yp[n];
   xs1:=(xp[n]+lange*(cos(wd))));
   xs[i+1]:=round(xs1);
   ys1:=(yp[n]+(lange*(-sin(wd))));
   ys[i+1]:=round(ys1);
   dist:=FloatToStr(n+i)+''+'x'+FloatToStr(xs[i+1])+'y'+FloatToStr(ys[i+1]);

   image1.Canvas.Pen.Color:=clred;
   image1.Canvas.Rectangle(xs[i+1]-1,ys[i+1]-1,xs[i+1]+1,ys[i+1]+1);
   end;

   //zeichnen der gedrehten Figur
   for i:=1 to n do
    begin
     image1.Canvas.MoveTo(xs[i],ys[i]);
     image1.Canvas.LineTo(xs[i+1],ys[i+1]);
    end;
   image1.Canvas.MoveTo(xs[n],ys[n]);
   image1.Canvas.LineTo(xs[1],ys[1];


end;

end.

Bin für jede Hilfe dankbar.


sweety

[edit=MrSpock] Code Tags eingefügt. Mfg, MrSpock[/edit]
  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 04:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz