Einzelnen Beitrag anzeigen

Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#2

AW: 2 Vektoren und 1 Punkt, wo näher drann?

  Alt 5. Apr 2012, 15:31
Also ich mache immoment was falsch... Ich habe folgende Prozedur:

Delphi-Quellcode:
function TSetPoints.PrevPointCloser(Index : Integer; X,Y : Double): Boolean;
var
  OrtsVektorPrevPoint : array [0..1] of Double;
  OrtsVektorNextPoint : array [0..1] of Double;

  VektorPrevPoint : array [0..1] of Double;
  VektorNextPoint : array [0..1] of Double;

  BetragVektorPrev : Double;
  BetragVektorNext : Double;
begin
  Result := True;
  OrtsVektorPrevPoint[0] := FPoints[Index - 1].FX;
  OrtsVektorPrevPoint[1] := FPoints[Index - 1].FY;

  OrtsVektorNextPoint[0] := FPoints[Index + 1].FX;
  OrtsVektorNextPoint[1] := FPoints[Index + 1].FY;
  // Vektor NewP->PrevP
  VektorPrevPoint[0] := OrtsVektorPrevPoint[0] - X;
  VektorPrevPoint[1] := OrtsVektorPrevPoint[1] - Y;
  // Vektor NewP->NextP
  VektorNextPoint[0] := OrtsVektorNextPoint[0] - X;
  VektorNextPoint[1] := OrtsVektorNextPoint[1] - Y;

  // Länge (Betrag) des Vektors
  BetragVektorPrev := sqrt(power(VektorPrevPoint[0], 2) + power(VektorPrevPoint[1], 2));
  BetragVektorNext := sqrt(power(VektorNextPoint[0], 2) + power(VektorNextPoint[1], 2));

// if FPoints[I + 1].FX dichter an FPoints[I].X als FPoints[I - 1].FX then
  if (BetragVektorPrev < BetragVektorNext) then
    Result := False;
end;
Also mein Problem: Das Bild sollte helfen,

Der Grüne Punkt ist mein X,Y was Ich der Prozedur übergebe,
Die SChwarze Linie ist mein Graph. Die Roten Punkte die Werte des Graphen, verbunden durch die Schwarzen Linien.

Immoment Berechne Ich die beiden Roten Vektoren und schaue welcher kürzer ist. Ich will aber den Betrag der Grauen Linien berechnen und die länge vergleichen...

aber es geht vorran.
Miniaturansicht angehängter Grafiken
unbenannt.jpg  
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat