hi,
Zitat:
Man sollte nicht auf "= false"! Dazu findest du auch einige Threads hier und soweit ich das sehe, brauchst du die zweite Bedingung nicht, da das durch die While-Schleife abgedeckt ist!
ich muss auch im if teil zusätzlich noch überprüfen, weil ich ja in der for schleife alle punkte durchlaufe und wenn die koordinate übereinstimmt füge ich diesen punkt zu e1richtungvekt hinzu. dieser darf aber nur 3 vektoren enthalten. wenn ich die 2. bedingung weglassen würde wäre es möglich, dass er innerhalb der for-schleife 4 punkte findet die mit dem wert übereinstimmen und würde somit den 3. durch den 4. vektor ersetzen.
dies sollte aber nicht sein. deshalb brauche ich die 2. bedingung auch noch.
Zitat:
Durch die interne Darstellungs- und Berechungsweise kann es immer zu kleinen Abweichungen kommen, wie in deinem Fall. Deshalb kann es auch vorkommen, dass dir als Zahl bspw. nicht 0.0038 sondern 0.0037999999999 angezeigt wird
ich habe die werte in ein memofeld eingegeben und habe alle werte mit 4 kommastellen eingegeben. in meinem array steht an der richtigen stelle auch -0.0036 drinnen aber wenn ich es vergleiche
Delphi-Quellcode:
if((punkte[i,param] =minimum)and (position_min<3)and
(istBereitsVektor(i,position_min,e1richtungsvekt)=false))then
dann führt er den if teil nicht aus.(punkte[i,param]ist aber(0.40,-0.0036,0.34) und param=1
demzufolge müsste er den wert -0.0036 nehmen und mit minimum(ist zu dem zeitpunkt auch -0.0036) vergleichen.