Zitat von
Dipl Phys Ernst Winter:
Was soll radius: integer? Die Komponenten von TPoint sind offensichtlich, wegen SquareInt(a.x-b.x), auch nur Integerwerte,?
Diese Einschränkungen gehen viel zu weit!
Wenn man auf dem Canvas zeichnet (und man zeichnet unter Windows fast ausschließlich auf einem TCanvas bzw. einem
DC), dann hat man es nur mit Integer-Werten zu tun, also ist eine Funktion, die Extended-Parameter verwendet, fehl am Platze.
Zitat:
Delphi-Quellcode:
typ
TPoint= record x, y: extended end;
Weiterhin ist es unglücklich, den in der
Unit Types definierten Datentyp 'TPoint' zu überschreiben. Besser wäre ein Name à la 'TExtendedPoint' o.ä.
Zu guter Letzt würde ich eine Funktion vorschlagen, die direkt angibt, ob der Punkt im Kreis, auf dem Kreis oder außerhalb des Kreises ist:
Delphi-Quellcode:
uses Types;
Type
TPointInCircleResult = (prInsideCircle, prOnCircle, prOutOfCircle);
Function TestPointInCircle (aPoint : TPoint; aCircleCenter : TPoint; aCircleRadius : Integer) : TPointInCircleResult;
Dann gibt es keine Interpretationsmißverständnisse. Und dokumentieren muss man auch nichts.