Frage

Stellen Sie sich eine Karte von Landkreisgrenzen zeichnen. Sie sind eine Gruppe von Polygonen gegeben, eine für jede Grenze, und Sie jedes Polygon zeichnen.

In Orten, wo zwei Landkreisen eine Grenze teilen Sie nur die Grenze zweimal Zeichnung enden. In Abwesenheit von Teiltransparenzeffekten, und mit einem festen Stift, ist dies kein Problem.

Aber auf Karten, die Grenzen dieser Art werden üblicherweise durch strichpunktierte Linien dargestellt. In diesem Fall Situationen wie unten dargestellt können passieren:

alt text

Beachten Sie, wie das Strichmuster, das normalerweise Strich-Punkt-Punkt ist, wird geschraubt, wo die beiden Bereiche eine Grenze teilen. In diesem Fall ist es passierte ein LongDash-Punktmuster zu werden, aber im Allgemeinen es könnte alles tun, aus zufällig sucht normal, dass eine durchgezogene Linie zu schaffen.

Wie funktioniert / sollte Karthographie Rendering-Artefakte dieser Art verhindern auftreten?

War es hilfreich?

Lösung

Das Artefakt ist aufgrund der Tatsache, dass das Stück Grenze zweimal gezogen. Statt solche Artefakte zu unterdrücken versuchen, könnten Sie versuchen nicht Grenzabschnitte ziehen zweimal, indem er eine Liste von Segmenten halten bereits im Speicher gezogen, und wenn man eine Strecke begegnen, die bereits gezeichnet sind, müssen Sie es nicht wieder ziehen.

Andere Tipps

Ihre Pinselmuster Farben einige Pixel schwarz und lässt allein einige Pixel. Statt allein das Pixel zu verlassen, können Sie Ihre Pinselmuster erstellen, um diesen Pixel weiß zu färben (oder was auch immer Ihre Hintergrundfarbe ist)?

Ein andere Möglichkeit ist es, immer das Doppelte des Landkreisgrenze zu ziehen -. Einmal mit einem soliden weißen Muster, und wieder mit dem Pinsel Muster Ihrer Wahl

Ich nehme an, sie ihre Grenzlinien in Segmente brechen, dann die Überlappungen entfernen.

Dies ist vor allem ein geometrisches Problem, kein Problem zeichnen.

Statt mit einer gestrichelten Linie zu gehen, man könnte es tun Zip-a-Ton Stil, wie folgt aus:

alt text

Zip-a-Ton war diese Grafik Sachen, die im Grunde eine klebrige Folie aus Kunststoff mit einem regelmäßigen (druckbare) Mustern von Punkten auf es war. Um es zu nutzen, würden Sie ein großes Blatt es über die Zeichnung legen und schneiden Sie es rund um die Bereiche auf die Zeichnung, die Sie Zip-a-getönten wollte, und dann die Teile abzulösen Sie nicht wollen.

Für dieses Bild ging ich nur mit einem Wechselschachbrettmuster, mit den Linien zwei Pixel breit. Da alle Linien von einem großen (virtuellen) Block dieses Schachbrettmuster gezeichnet werden, die Sie nie an den Gelenken oder jegliche Überlappung Effekte über seltsame Artefakte sorgen.

schräge Linien sind ein bisschen schwierig, aber man im Grunde die Kanten der Linie Art vorstellen, durch die Pixel des Schneidens und damit sie Sie auf dem entsprechenden Schatten Grade ziehen statt Voll schwarz (im Fall der 45-Grad-Linie hier werden die Pixel mit RGB gezogen (170, 170, 170), aber jeder Winkel könnte mit entsprechenden Farbtönen wiedergegeben werden).

Ich bin mir nicht sicher, ob GDI + dies leicht tun könnte die strukturierten Bürsten, aber vielleicht. Andernfalls würden Sie es individuell Code. Der Vorteil dieses Verfahrens gegenüber nur solide graue Linien wäre, dass dies einige der Hintergrund erlauben würde, zu zeigen, durch.

Dies ist eine interessante Frage, die ich nie wirklich darüber nachgedacht. Ich denke, die einzige wirkliche Lösung ist, die gesamte komplexe Figur als eine Reihe von Linien oder Pfaden zu machen, die nicht überall überlappen. Ich bin nicht überrascht, dass GDI + nicht über diese Situation in jeder automatischen Art und Weise handhaben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top