Asymptote: Wie zeichnet man Oberflächen mit mehr als vier Eckpunkten ohne „Nähte“?

Asymptote: Wie zeichnet man Oberflächen mit mehr als vier Eckpunkten ohne „Nähte“?

In Asymptote 3D muss ich Oberflächen mit mehr als 4 Eckpunkten zeichnen, aber wenn ich das tue, funktioniert es entweder einfach nicht (ich kann das nicht in einem einfachen Beispiel reproduzieren, kann aber einen komplizierteren Fall angeben, in dem das passiert, wenn es hilfreich ist) oder es erscheint eine Naht, wie im folgenden Beispiel:

settings.prc = false;
defaultpen(fontsize(10pt));
import three;
import graph3;
import patterns;
size(11cm,0);

currentprojection=perspective((10,-20,10));
currentlight = (3,-2,3);

render render = render(compression=Low, merge = true);

draw(surface((0,0,0) -- (1,0,0) -- (1,1,0) -- (0.5,1.5,0) -- (0,1,0) -- cycle), lightblue+opacity(0.5), render);

Ausführen dieses Befehls

asy -noprc -render 0 -f pdf example.asy

ergibt folgendes Bild:

„Haus“ durch den Code generiert.

Gibt es eine Möglichkeit, die dunkelblaue „Naht“ loszuwerden?

Antwort1

Es scheint, dass das „Nahtverhalten“ vom PDF-Viewer und der -renderOption abhängt. „Naht“-Probleme treten bei Deckkraft und -render=0Option auf: Je nach PDF-Viewer erzeugt die Überlagerung einer gemeinsamen Grenze der beiden Patches ein solches Verhalten.

Mit -noprcund -render=0haben wir „Naht“ mit Okular, Acroread, GV (das Bild ist vektorisiert). Keine „Naht“ mit Evince, Mupdf, Zathura. Ich habe Transparenzprobleme mit Evince und Zathura. Mupdf ist in Ordnung.

( dabei -noprcwird OpenGL-Rendering verwendet und ein Bitmap-Bild erzeugt) gibt es überhaupt keine „Naht“.

Um genau zu sein, sind alle Versionen aktuelle Debian Sid.

Wie in der Dokumentation erläutert, -render=0ist es sehr begrenzt.

verwandte Informationen