Ich möchte ein gefülltes Rechteck von vier Punkten mit dem Linienalgorithmus von Bresenham oder ähnlichem erzeugen, um glatte Seiten zu erhalten. Ich bin auf diese Antwort auf Stack Overflow [link] gestoßen, die perfekt zum Erstellen einer Linie zwischen zwei Punkten funktioniert. Wie kann ich diese Funktion verwenden/ändern, um ein ausgefülltes Rechteck zu erstellen? Gibt es einen anderen Algorithmus, der besser zu meinen Bedürfnissen passt?Unter Verwendung von Bresenhams Linienalgorithmus oder ähnlichem, um ein Rechteck zu füllen
-1
A
Antwort
0
Für beliebige gedrehten Rechtecke:
Hinweis: Diese Beschreibung folgt wiki Wu's implementation mit zur Schleife entlang OX-Achse, aber es ist wirksame Kanten entlang OY Achse zu ziehen und horizontale Linien zu füllen.
Sortieren Ecken durch X-Koordinate
Abständen Achse durch auf vertice
wählen für jedes Intervall getrennt horizontal Stellen oberen und unteren Rand
Gleichzeitig Wu antaliasing für Ober- und Unterkante
Für Oberkante draw auszuführen obere halbtransparentes pixel
draw: plot(ipart(intery) , x, rfpart(intery))
und untere Pixel ignorieren, seine Position als Start der Füllleitung verwenden
LineFrom(ipart(intery)+1, x)
Für Unterkante ziehen untere halbtransparenten Pixel und verwendet als oberes Ende der Füllleitung
Reinitialize Kante Zeichnung wenn Ecke erreicht ist.
Verwandte Themen
- 1. Bresenham Linienalgorithmus
- 2. SVG - Füllen Rechteck mit Jet-Farbschema
- 3. Verwendung von postman.setNextRequest(), um Anfragekörper vor dem Senden zu füllen
- 4. Ultra symmetrischer Linienalgorithmus?
- 5. Rechteck Zeichnung unter PIXI.Text
- 6. Rechteck um ein Gesicht zuschneiden/Koordinaten
- 7. Wie wird Bresenhams Linienzeichnungsalgorithmus mit Clipping verwendet?
- 8. Einfacher Weg, um ein Formular zu erstellen, um in SharePoint ohne Verwendung von infopath
- 9. Verwendung von Rückgabewert von Rechteck Patch
- 10. C# Füllen Rechteck lässt einen Leerraum
- 11. WPF - benutzerdefinierte Steuerelement füllen auf Rechteck
- 12. Benchmark-Code mit einem StopWatch oder ähnlichem
- 13. AVFoundation tippen, um Feedback-Rechteck zu fokussieren
- 14. Konvertieren von MP3-Bitraten mit lame_enc.dll oder ähnlichem
- 15. Kann db2 importiert oder geladen werden, um DashDB zu füllen?
- 16. QML: dynamisch Rechteck hinzufügen, um ein Kind von einer Komponenteninstanz
- 17. Linie fit in MATLAB oder ähnlichem Programm
- 18. Colorfill Boxplot in R-Kran mit Linien, Punkten oder ähnlichem
- 19. Verwenden: nach CSS-Selektor, um ein Leerzeichen zu füllen?
- 20. Anforderung von Testdateien mit Webpack für die Verwendung mit Mocha oder ähnlichem
- 21. Füllen gesamte Zelle mit zwei Komponenten unter Verwendung MigLayout
- 22. Wie blende ich ein Rechteck oder Text ein/aus?
- 23. Füllen einen Baum Zufallswert unter Verwendung mit Schleife
- 24. Cursor von Block oder Rechteck zu Linie ändern?
- 25. Einfachste Möglichkeit, ein Rechteck zu drehen
- 26. Ergebnisse von top_hits mit date_histogram oder ähnlichem zusammenfassen?
- 27. Zeichnung Getbounds Rechteck oder RechteckF?
- 28. Rechteck um Mitte drehen
- 29. Warum zu füllen, um ein größeres Bild als UIImageVIEW Größe zu füllen? (mit swift)
- 30. entfernen rotes Rechteck um Combobox
Ein Rechteck wird immer in Pixel passen, Sie brauchen nicht zu glätten, können Sie ein Viereck bedeuten? – Gusman
@Gus: Ein gedrehtes Rechteck ist immer noch ein Rechteck. – TaW
Sie könnten zuerst das Rechteck erstellen und dann eine Überfüllung durchführen. Es hängt wirklich davon ab, auf welche Art von Primitiven Sie zielen. – TaW