Frage zu DrawEllipse.

20/01/2009 - 16:32 von Wolfgang Badura | Report spam
Hallo liebe NG-Teilnehmer!
Ich schickle voraus, daß ich in DotNet (noch) blutiger Anfànger bin!

Ich komme mit dem Zeichnen eines Kreises nicht klar:
Die lokale Hilfe zu DrawEllipse zeigt mir folgendes an:
instance.DrawEllipse(brush,pen,center,radiusX,radiusY)
Wenn ich nun das Stmt in dieser Form eingebe so erhalte ich den Tooltip
Public Sub DrawEllipse(pen as System.Drawing.pen,x as integer,y as
integer,Width as integer,heigth as integer):
Option Strict On làsst keine implizite Konvertierungen von Double in Integer
zu.
1. wo ist Brush hingekommen,
2. radiusX und radiusY sind Double definiert
3. Center ist ein Point
Ich kenne mich nicht aus.
Wenn ich aber den Tooltip als Grundlage des Stmts verwende
with e.Graphics
.DrawEllipse(MyPen,CType(Me.Width/ 2,Integer),CType(Me.Heigth/
2,Integer), CType(Radius,Integer),CType(Radius,Integer))
end with
so ist das Stmt zwar ok, aber gezeichnet wird ein Kreis mit dem halben
Radius und der Mittelpunkt ist irgendwo, nur nicht in der Mitte des Forms.
Selbst durch Probieren mit dem Eintrag fixer Mittelpunkt-Koordinaten komme
ich nicht zum Form-Mittelpunkt!
(Warum übrigens muß ich eine Typkonvertierung verwenden wenn ich eine
Integer-Variable durch die Konstante 2 dividiere? (Option Strict On làsst
keine implizite Konvertierungen von Double in Integer zu!) Ergànze ich 2 um
das Typkennzeichen % so nützt das auch nichts.)
Was muß ich tun, damit der Mittelpunkt des Kreises im Form-Mittelpunkt liegt
und den gewünschten Radius hat?
Zu Brush habe ich auch eine Frage:
Wie belege/verwende ich es? Die Hilfe dazu ist nicht wirklich hilfreich.
Leider sind die Beispiele in der Hilfe zum Zeichnen eines Kreises auch nicht
das, wonach ich suche.
Ich weiß, daß ich noch viel lernen muß, aber vielleicht hift mir doch jemand
weiter.
Danke im Voraus
Wolfgang
 

Lesen sie die antworten

#1 Karsten Sosna
21/01/2009 - 06:16 | Warnen spam
Ich komme mit dem Zeichnen eines Kreises nicht klar:
Die lokale Hilfe zu DrawEllipse zeigt mir folgendes an:
instance.DrawEllipse(brush,pen,center,radiusX,radiusY)


Hallo Wolfgang,
eine Überladung mit Brush gibt es bei DrawElliipse nicht.

Wenn ich nun das Stmt in dieser Form eingebe so erhalte ich den Tooltip
Public Sub DrawEllipse(pen as System.Drawing.pen,x as integer,y as
integer,Width as integer,heigth as integer):
Option Strict On làsst keine implizite Konvertierungen von Double in
Integer
zu.



Dann musst Du nach Single casten CSng(radiusX).

1. wo ist Brush hingekommen,
2. radiusX und radiusY sind Double definiert
3. Center ist ein Point
Ich kenne mich nicht aus.
Wenn ich aber den Tooltip als Grundlage des Stmts verwende
with e.Graphics
.DrawEllipse(MyPen,CType(Me.Width/ 2,Integer),CType(Me.Heigth/
2,Integer), CType(Radius,Integer),CType(Radius,Integer))
end with
so ist das Stmt zwar ok, aber gezeichnet wird ein Kreis mit dem halben
Radius und der Mittelpunkt ist irgendwo, nur nicht in der Mitte des Forms.
Selbst durch Probieren mit dem Eintrag fixer Mittelpunkt-Koordinaten komme
ich nicht zum Form-Mittelpunkt!


Der Mittelpunkt wird ja auch ncicht angeben. Die ersten beiden Werte geben
die linke obere Ecke an, diw nàchsten beiden die Breite und Höhe, also bei
Gleichheit den Durchmesser Ein Kreis mit Mittelpunkt 100,100 und Radius 50
müsste so gezeichnet werden
r = 50
mx = 100
my = 100
Graphics.DrawEllipse(pen, mx-r,my-r,2*r,2*r)

(Warum übrigens muß ich eine Typkonvertierung verwenden wenn ich eine
Integer-Variable durch die Konstante 2 dividiere? (Option Strict On làsst
keine implizite Konvertierungen von Double in Integer zu!) Ergànze ich 2
um das Typkennzeichen % so nützt das auch nichts.)



Weil / eine Double Division ist. Das Ergebnis ist dann vom Typ Double.

Was muß ich tun, damit der Mittelpunkt des Kreises im Form-Mittelpunkt
liegt
und den gewünschten Radius hat?
Zu Brush habe ich auch eine Frage:
Wie belege/verwende ich es?



Brush wird bspw. bei FillEllipse benutzt.
Gruß Scotty

Ähnliche fragen