Gewusst wie: zeichnen von Kreisbögen in VB.NET
Habe ich zum generieren der folgenden Abbildung anhand der fed-Werte. Wie gehe ich über die Zeichnung der Bögen (B-C-F, wie in Abbildung, kreisförmig in der Natur) gegeben, deren start point & Endpunkt (B & F jeweils) & die Höhe aus dem segment BF? Ich kann einige geometrische Berechnungen & Holen Sie sich den radius & alle, aber wie ziehe ich die arc?
Habe ich versucht, mit der Graphics.DrawCurve()
Methode, aber es funktioniert nicht wie erwartet. Wie kann ich diese Methode funktioniert für Kreisbögen? Andere Abhilfe ist auch willkommen.
- Was war falsch mit den Grafiken.DrawArc? msdn.microsoft.com/en-us/library/...
- Wenn Sie berechnet haben, die erforderlichen radius zu erzeugen, die Kurve, dann ziehen Sie einfach den gesamten Kreis mit Grafiken.DrawEllipse(), aber Grafik.SetClip() und übergeben Sie ein Rechteck über die Punkte B und F der einen Seite und der Berechnung der beiden anderen Punkte mit der Höhe C. in Diesem clip wird der gesamte Kreis nur der Teil sichtbar, der innerhalb des Rechtecks. Dann rufen Sie Graphics.ResetClip() und zeichnen Sie die übrigen Linien. Wiederholen Sie die SetClip() trick zum zeichnen der Kurve an der Unterseite als gut.
- konnte Sie stellen Sie bitte Ihre Kommentar als eine Antwort. @Mitch kann Sie etwas beschreiben,, wie könnte ich gehen, über die Verwendung
DrawArc
für meine situation? PS - ich bin ein Neuling auf VB.NET
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus meinem Kommentar:
Hier ist ein proof-of-concept für die top-curve thru, B, C, und F.
Benutzte ich die Formeln zur Verfügung gestellt von Donna Roberts auf Investigative Kreis Aktivität Über Drei Punkte.
Hier ein screenshot:
...und der code, der produziert es:
DrawArc
Methode ist viel einfacher für mich. Danke!Hab! Vielen Dank @Mitch & @Idle_Mind
Verwendung des builtin
DrawArc
Methode derGraphics
Vorschläge/Verbesserungen willkommen.
Hinweis - Dies ist nicht die eigentliche Funktion von meinem code.
CreateGraphics()
. Anstatt, Ihre Zeichnung sollte in der OnPaint-überschreibung Ihrer form.