2016-04-22 10 views
-2

SQL Server hat einen räumlichen Typ "Circularstring", die Sammlung von ungeraden Punkten ist. Wie kann ich diesen Typ in C# zeichnen? Drawarc arbeitet auf der Grundlage von Winkeln, während wir in der Zirkularstring nur Punkte haben. Drawcurve funktioniert basierend auf den Punkten, aber das Ergebnis ist nicht dasselbe wie Circularstring. Mit drei Punkten ist der Kreisbogen ein Bogen des Kreises, der durch diese Punkte verläuft, während die Kurve nicht verläuft.Wie zeichne SQL Server "Circularstring" in C#

Vielen Dank.

Majid

+0

[Interessante Sachen] (https://msdn.microsoft.com/en-us/library/ff929141.aspx) aber wie es aussieht, ist die Frage zu breit. – TaW

+0

Sie gesehen http://stackoverflow.com/questions/20281297/dbgeography-make-circle-with-center-and-radius –

Antwort

2

Die basische Lösung könnte wie folgt aussehen:

  • Nehmen Sie drei Punkte A, B, C (blau) und den Bogen erstellen.
  • Nehmen Sie den letzten plus die nächsten zwei und erstellen Sie den nächsten Bogen.
  • Fahren Sie fort, bis alle Punkte verwendet sind.
  • Wenn die Anzahl der Punkte gerade ist oder wenn zwei aufeinanderfolgende Punkte gleich sind, sind die Daten ungültig.

die Lichtbogen zu erzeugen:

  • den Mittelpunkt M Finden (grün) des Kreises (die Überquerung der gelben Linien)
  • , um ein (im Uhrzeigersinn) Winkel zwischen der x-Achse und die Verbindung zwischen M und A (Startwinkel, orange)
  • Finden Sie den Winkel zwischen M und A und C (Pfeilung, orange)

Jetzt können Sie draw the arc.

enter image description here

der kurzen gelben Linien verbinden die Punkte; die Langen stehen senkrecht auf ihnen.