AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Benötige Hilfe von einen Mathematiker
Thema durchsuchen
Ansicht
Themen-Optionen

Benötige Hilfe von einen Mathematiker

Ein Thema von EWeiss · begonnen am 16. Dez 2008 · letzter Beitrag vom 17. Dez 2008
 
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#5

Re: Benötige Hilfe von einen Mathematiker

  Alt 16. Dez 2008, 12:52
So viel hab ich aus dem obigen Text verstanden:
Zitat von EWeiss:
Kann mir jemand ein Beispiel erstellen mit simplen RadioButton die sich um einen
Ovalen oder Runden Kreis positionieren ?
ein Beispiel:
Delphi-Quellcode:
type
  TPointArray = array of TPoint;

function KreisPunkte(
  P: TPoint; {Mittelpunkt des Kreises auf dem die Punkte liegen}
  R: Word; {Radius des Kreises}
  Alpha: Double; {Winkel 0..360 für den Ersten Punkt; 0 = 0Uhr; 90 = 3Uhr}
  StepAlpha: Double; {Winkel zwischen den Punkten}
  StepCount: Integer {Anzahl der Punkte}
  ): TPointArray;
var
  i: Integer;
begin
  {Grad in Bogenmaß umrechnen}
  Alpha := DegToRad(Alpha);
  StepAlpha := DegToRad(StepAlpha);
  SetLength(Result, StepCount);
  for i := 0 to StepCount - 1 do
  begin
    with Result[i] do
    begin
      x := P.x + Round(R * sin(Alpha));
      y := P.y - Round(R * cos(Alpha));
    end;
    Alpha := Alpha + StepAlpha;
  end;
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  PointArray: TPointArray;
  P: TPoint;
  R: Word;
  i: Integer;
  s: String;
begin
  with PaintBox1 do
  begin
    P.x := Left + (Width div 2);
    P.y := Top + (Height div 2);
    R := (Min(Width, Height) div 2) - 40;
    PointArray := KreisPunkte(P, R, 180, 15, 6);
    {Ausgabe Punkt P}
    Canvas.Pen.Color := clBlack;
    Canvas.MoveTo(P.x, P.y - 4);
    Canvas.LineTo(P.x, P.y + 5);
    Canvas.MoveTo(P.x - 4, P.y);
    Canvas.LineTo(P.x + 5, P.y);
    {Ausgabe Kreis um P mit Radius R}
    Canvas.Brush.Style := bsClear;
    Canvas.Pen.Color := clBlack;
    Canvas.Pen.Style := psDot;
    Canvas.Ellipse(P.x - R, P.y - R, P.x + R, P.y + R);
    {Ausgabe Punkte auf dem Kreis}
    for i := Low(PointArray) to High(PointArray) do
    begin
      s := IntToStr(i + 1);
      with PointArray[i] do
      begin
        Canvas.Brush.Color := clYellow;
        Canvas.Brush.Style := bsSolid;
        Canvas.Pen.Color := clBlack;
        Canvas.Pen.Style := psSolid;
        Canvas.Ellipse(x - 10, y - 10, x + 10, y + 10);
        Canvas.Brush.Style := bsClear;
        Canvas.Font.Color := clRed;
        Canvas.TextOut(x - (Canvas.TextWidth(s) div 2),
                       y - (Canvas.TextHeight(s) div 2),
                       s);
      end;
    end;
  end;
end;
Angehängte Grafiken
Dateityp: jpg kreis_209.jpg (6,3 KB, 45x aufgerufen)
  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 01:29 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