Hallo,irgendwie habe ich Knoten im Kopf.Ich möchte ein Drehpoti zeichnen.(Image 40 X 40 Pixel dynamisch)
Zu der Grafik:Aussenradius 20.(Skala)
Drehknopfradius 15.
StartWinkel wählbar von 0-2*Pi in Pi/4 Schritten
Drehwinkel wählbar Pi,3*Pi/2 und 2*Pi
Ich möchte jetzt rundum bzw von StartWinkel bis EndeWinkel alle 45° bzw Pi/4 eine rote LED zeichnen auf folgenden Radianen
RadiusX1:= 19 und radius X2 etwa 16.(Siehe Codeausschnitte)
Delphi-Quellcode:
StartWinkel := GetStartWinkel(pDat^.NullIndex);
DrehWinkel := GetDrehWinkel(pDat^.DrehIndex);
EndeWinkel := StartWinkel - DrehWinkel;
if EndeWinkel < 0 then EndeWinkel := EndeWinkel + (2 * pi);
Hier kommt die LED Grafik:
Delphi-Quellcode:
RadiusX1 := (Right-Left+1)*19
div 40 ;
RadiusY1 := (Bottom-Top+1)*19
div 40 ;
RadiusX2 := (Right-Left+1)*16
div 40 ;
RadiusY2 := (Bottom-Top+1)*16
div 40 ;
LEDWinkel := EndeWinkel;
//Anzahl der LED´s z.B bei 180° sind es 5 Stück
If DrehWinkel =Pi
then n:=5;
If DrehWinkel =(3*Pi/2)
then n:=7;
If DrehWinkel =(2*Pi)
then n:=8;
{n:=Trunc(DrehWinkel*4/Pi)+1;}
DeleteObject(SelectObject(
DC,OldPen));
DeleteObject(SelectObject(
DC,OldBrush));
OldPen := SelectObject(
DC,GetStockObject(Black_Pen));
OldBrush := SelectObject(
DC,CreateSolidBrush(clRed));
for j:=1
to n
do
begin
//Koordinate der LED
StartX1 := Trunc(Cos(LEDWinkel)*RadiusX1);
StartY1 := Trunc(Sin(LEDWinkel)*RadiusY1);
EndeX1 := Trunc(Cos(LEDWinkel)*RadiusX2);
EndeY1 := Trunc(Sin(LEDWinkel)*RadiusY2);
//weil Cos von 90° und 270°=0 X Koordinaten um +-1 verschieben um die Mitte
if (LEDWinkel=Pi/2)
or (LEDWinkel=3*Pi/2)
then
begin
StartX1:=StartX1+1;
EndeX1:=EndeX1-1;
end;
//weil Sin von 0°,180° und 360°=0 Y Koordinaten um +-1 verschiebenum die Mitte
if (LEDWinkel=0)
or (LEDWinkel=Pi)
or (LEDWinkel=2*Pi)
then
begin
StartY1:=StartY1+1;
EndeY1:=EndeY1-1;
end;
Ellipse(
DC,ZentrumX+StartX1,ZentrumY-StartY1,ZentrumX+EndeX1,ZentrumY-EndeY1);
LEDWinkel:=LEDWinkel+(Pi/4);
//Winkel um 45° verschieben
if LEDWinkel>(2*Pi)
then LEDWinkel:=LEDWinkel-(2*Pi);
end;
Die LED bei 0,90°,180° werden nicht dargestellt .Warum???
Grüss
Pinki