AGB  ·  Datenschutz  ·  Impressum  







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

Zeichnung

Ein Thema von woodie17 · begonnen am 23. Jun 2003 · letzter Beitrag vom 30. Jun 2003
Antwort Antwort
Seite 1 von 2  1 2      
woodie17

Registriert seit: 30. Mai 2003
19 Beiträge
 
Delphi 6 Enterprise
 
#1

Zeichnung

  Alt 23. Jun 2003, 15:27
HI wieso zeichnet der wenn man als seitenlängen bei a=4, b=5 und c=3
b falsch?
Angehängte Dateien
Dateityp: zip dreieck3.zip (133,0 KB, 36x aufgerufen)
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#2

hmm,

  Alt 23. Jun 2003, 19:05
was ist denn b ? Leider fehlen mir da die Bezeichnungen ab den Geraden, dann wäre alles klarer
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#3
  Alt 23. Jun 2003, 19:24
Was mich stört ist das auftauchende Fenster das mir sagt: "Das Dreieck ist konstruierbar." Das stört unheimlich. Würd ich wegmachen.

MfG Florian

P.S.: Ach ja, Bezeichnungen wären wirklich sehr sinnvoll.
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
woodie17

Registriert seit: 30. Mai 2003
19 Beiträge
 
Delphi 6 Enterprise
 
#4
  Alt 23. Jun 2003, 21:57
hmm ja stimmt das mit den seiten dass da nix dransteht aber ich weiss nich wie ich da was dranschreiben lassen kann
also unten die seite ist c oben links die is seite a un oben rechts b

und das mit dem showmessage kram kann ich ja noch wegmachen

mfg martin
  Mit Zitat antworten Zitat
woodie17

Registriert seit: 30. Mai 2003
19 Beiträge
 
Delphi 6 Enterprise
 
#5
  Alt 23. Jun 2003, 22:06
also ist links unten auch alpha, rechts unten beta un oben gamma

so aber der zeichnet wenn beta 90° ist für beta keine 90°

das wäre zb bei a=4 b=5 un c=3
  Mit Zitat antworten Zitat
woodie17

Registriert seit: 30. Mai 2003
19 Beiträge
 
Delphi 6 Enterprise
 
#6
  Alt 23. Jun 2003, 22:14
ach übrigens das zeichnen liegt auf der procedure vom bottom 2
  Mit Zitat antworten Zitat
Biohazard

Registriert seit: 20. Mär 2003
46 Beiträge
 
#7
  Alt 25. Jun 2003, 10:34
Hallo,
Habe mir mal die Freiheit genommen deinen Quelltext abzuändern. Mit deinen Berechungen bin ich irgendwie nicht klargekommen. Ist nur ein Test und ich weiß nich ob es für alle Variationen funzt. Die meisten die ich probiert habe, gingen.
Mir ist nur aufgefallen, daß manchmal nicht das richtige Größenverhältnis gezeichnet wird(z.B. bei a=5,b=4,c=3 da geht es über den Rand hinaus). Vieleicht muß ja nur was an den Umrechnungsfaktoren geändert werden.
Probiers halt mal aus, wenn es dir was nützt.
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var x_start,y_start,err1,err2,err3: integer;
x1, h1, laenge,a,b,c,a2,b2,c2 :double;
    p,q,hp,hq:Extended;

function dreieck(SeiteA,SeiteB,SeiteC : double): double;
begin
try
      p:=(c*c + b*b - a*a)/(2*c); //P = Lotabschnitt von c auf der b-Seite
      q:=(c*c + a*a - b*b)/(2*c); //q = Lotabschnitt von c auf der a-Seite

      hp := b*b - p*p; //wobei nur hp oder hq gebraucht wird
      hq := a*a - q*q; //ist ein und der selbe Wert (Höhe)
      hp := sqrt(hp); //wurde nur zur konntrolle 2 mal berechnet
      hq := sqrt(hq);
      laenge := 0.9 * paintbox1.width;
      h1 := hp*laenge/c;
      x1 := q*laenge/c;
      c := laenge;
      {Zeichne Dreieck}
      x_start := round(0.05*paintbox1.width);
      y_start := round((paintbox1.height + h1) / 2);

      with paintbox1.canvas do
      begin
        rectangle(0,0,paintbox1.height,paintbox1.width);
        MoveTo(x_start, y_start);
        LineTo(x_start + round(c), y_start);
        LineTo(x_start + round(x1), y_start - round(h1));
        LineTo(x_start, y_start);
      end; {of with}
    except
    showmessage('Sorry, Probleme beim Zeichnen!');
  end;
end;

begin {Lege Maximum auf c}
  val(edit1.text,a2,err1);
  val(edit2.text,b2,err2);
  val(edit3.text,c2,err3);
  if (c>b) and (c>a) then
  begin
  a:=a2;
  b:=b2;
  c:=c2;
  dreieck(a,b,c);
  end;
  if (a>b) and (a>c) then
  begin
  c:=a2;
  b:=b2;
  a:=c2;
  dreieck(a,b,c);
  end;
 if (b>c) and (b>a) then
  begin
  b:=a2;
  c:=b2;
  a:=c2;
  dreieck(a,b,c);
  end;
if (b=c) and (b=a) and (c=a) then
  a:=a2;
  b:=b2;
  c:=c2;
  dreieck(a,b,c);

end;
[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat
Biohazard

Registriert seit: 20. Mär 2003
46 Beiträge
 
#8
  Alt 25. Jun 2003, 11:13
Huch,

Hab da was übersehen. In bei den IF's mußt du noch a,b,c durch a2,b2,c2 ersetzen. a,b,c haben zu dieser zeit ja noch keinen Wert zugewiesen bekommen.

[EDIT=Christian Seehase] Doppelposting gelöscht [/EDIT]
  Mit Zitat antworten Zitat
woodie17

Registriert seit: 30. Mai 2003
19 Beiträge
 
Delphi 6 Enterprise
 
#9
  Alt 25. Jun 2003, 21:49
hi, danke aber das prog zeichnet nicht die richtigen winkel

mfg martin
  Mit Zitat antworten Zitat
Tiefflieger

Registriert seit: 20. Mai 2003
18 Beiträge
 
Delphi 6 Personal
 
#10
  Alt 25. Jun 2003, 22:59
moin,
binde noch zusätzlich die unit "math" ein, dann steht dir die funktion arccos zur verfügung und du brauchst sie nciht selbst zu schreiben
Irren ist menschlich.
Aber wenn man richtig Mist bauen will, braucht man einen Computer.

Dan Rather, CBS-Fernsehreporter
  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 02:51 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