AGB  ·  Datenschutz  ·  Impressum  







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

Geometrie

Ein Thema von bender123 · begonnen am 4. Dez 2004 · letzter Beitrag vom 14. Mai 2006
 
track

Registriert seit: 30. Okt 2005
25 Beiträge
 
#9

Re: Geometrie

  Alt 14. Mai 2006, 17:28
hab 3 Punkte, muss jetzt feststellen, ob die einen Dreieck bilden oder eifach auf einer Gerade liegen
hab mir auch überlegt, ob es nicht mit hilfe von Vektorrechnung das problem bewältigt werden kann und zwar:

cos Alpha = A*B/(|A|*|B|)
A*B = a1*b1+a2*b2*+....+aN*bN
|A| = sqrt(sqr(a1)+sqr(a2)+...)
genauso mit |B| und wenn die cos Alpha = 0 dann ist es auf einer gerade.

Delphi-Quellcode:
function DrawDreieck(Figur:TFigur) : boolean;
var VektA_VektB : real; //A*B
    LaengeVA, //laenge des vektors A
    LaengeVB : real; //laenge des vektors A
    x1,x2, //die einzelnen laengen
    y1,y2 : longint;
    Ecke : real; //ergebnis
begin
  x1 := Figur.Dreieck_Daten[1].X - Figur.Dreieck_Daten[2].X;
  y1 := Figur.Dreieck_Daten[1].Y - Figur.Dreieck_Daten[2].Y;
  x2 := Figur.Dreieck_Daten[3].X - Figur.Dreieck_Daten[2].X;
  y2 := Figur.Dreieck_Daten[3].Y - Figur.Dreieck_Daten[2].Y;
  LaengeVA := sqrt(sqr(x1) + sqr(y1)); // <--------
  LaengeVB := sqrt(sqr(x2) + sqr(y2));
  VektA_VektB := x1 * x2 + y1 *y2;
  Ecke := arccos(VektA_VektB / (LaengeVA * LaengeVB));
  if Ecke <> 0 then DrawDreieck := true;
end;

Problem ist in der Zeile mit Pfeil. gibt n Fehler "integerüberlauf" aus
was kann man da tun?

als zugabe - Typen definitionen:
Delphi-Quellcode:
type

  TRechteck = record
                P1 , // Eckpunkte des Rechtecks
                P2 : TPoint;
              end;
              
  TKreis = record
             Aussenpunkt : TPoint; // Eckpunkt des "Quadrats" in das
             Durchmesser : integer; // der Kreis gezeichnet wird
           end; // die Kantenlänge dieses Quadrates

  TDreieck = array[1..3] of TPoint; // Drei Eckpunkte des Dreiecks

  TFigurentyp = (Rechteck,Kreis,Dreieck);
  TFigur = record // Varianter Record
             pen : TColor;
             brush : TColor;
             case Figurentyp : TFigurentyp of
               Rechteck : (Rechteck_Daten : TRechteck);
               Kreis : (Kreis_Daten : TKreis);
               Dreieck : (Dreieck_Daten : TDreieck);
           end;
  Mit Zitat antworten Zitat
 


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 20:31 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