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.