2017-04-06 18 views
1

Ich versuche, einen einfachen Kreis mit Delphi 7 und Canvas zu zeichnen, und ich bin mir nicht sicher, ob was ich tun möchte, ist möglich.Delphi 7 - Zeichnen Kreis mit transparenten Kern mit Leinwand

Wie das folgende Bild möchte ich ohne Kern/Mitte einen Kreis zeichnen:

Core transparent Pie

Mit Jerry Dodge-Vorschlag:

enter image description here

  • I don brauche nicht den roten Teil, nur den blauen Teil.

-Code verwendet:

Canvas.Brush.Style := bsClear; 
Canvas.Pen.Style := psSolid; 
Canvas.Pen.Color := clGreen; 
Canvas.Pen.Width := 20; 
Canvas.Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4); 

Alte Informationen:

Das Hintergrundbild ist eine einfache TImage Komponente und ich ziehe den Kreis mit diesem Befehl:

Canvas.Brush.Color := clgreen; 
Canvas.Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4); 

Ist es möglich?


Gelöst nach Tom und Jerry Brunberg Ausweichen helfen!

Ergebnis:

tom


Vielen Dank für alle Hilfe!

+0

Zeichnen Sie zuerst eine separate Arbeitsfläche, am häufigsten eine 'TBitmap', und zeichnen Sie diese Bitmap dann mit Transparenz auf die endgültige Arbeitsfläche. –

+1

Warum auch 'Pie' für diese Aufgabe verwenden? Warum nicht Ellipse? –

+2

Oder vielleicht könnten Sie eine hohe Stiftbreite, zum Beispiel 'Canvas.Pen.Width: = 100;' und dann keine Füllung 'Canvas.Brush.Style: = bsClear;' Das wird wahrscheinlich viel einfacher, als auch besser durchführen. –

Antwort

3

Ich kann mir einige Möglichkeiten vorstellen, aber der einfachste Weg ist die Verwendung einer großen Stiftbreite ohne Füllung. aber zum Beispiel ...

Canvas.Brush.Style := bsClear; 
Canvas.Pen.Style := psSolid; 
Canvas.Pen.Color := clGreen; 
Canvas.Pen.Width := 50; 
Canvas.Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4); 

In Ihrem Fall ist Pie nicht der richtige Ansatz, weil es auch Linien in der Mitte verlassen. Sie müssen stattdessen Arc verwenden.

Verwandte Themen