2017-09-01 1 views
0

Ich importiere viele rohe Zeichnungsdaten (Striche) und wandle sie in Bilder um. Ich habe bis jetzt das einfache HTML5 Canvas verwendet, was gut funktioniert hat. Aber ich wollte den Strichzeichnungsalgorithmus selbst implementieren, da er viel Ärger erspart. SoWelcher Antialias-Linienzeichnungsalgorithmus wird von Chrome verwendet?

I umgesetzt Xiaolin Wu's line algorithm, aber wenn ich es zu meinen früheren Ergebnissen mit Canvas vergleichen hat es nicht wirklich gut aussehen:

Left 5 Spalten: Xiaolin Wu Linie Algorithmus, rechts 5 Spalten: HTML5 Canvas (neueste Version Chrome) -Algorithmus

Also welchen Algorithmus verwenden sie? Ist Quellcode verfügbar? Alles, was ich brauche, ist der Algorithmus zum Zeichnen einzelner Linien.

+0

Bezug zu [Algorithmen in android.graphics.Canvas verwendet] (https://stackoverflow.com/questions/27871855/algorithms-used-in-android- Grafik-Leinwand) (gleiche Bibliothek in Android) – aloisdg

Antwort

1

Google Chrome wird von Chromium betrieben, das Open Source ist.

Das Haupt-Chromium-Projekt befindet sich unter https://www.chromium.org/.

Der Quellcode ist verfügbar unter https://chromium.googlesource.com/.

Nächster Schritt ist ein wenig zu durchsuchen. Sie verwenden die Bibliothek Skia zum Zeichnen, die auch Open Source ist. Sie können es in Ihrem Projekt verwenden und Sie sollten gut sein.

Demo:

void draw(SkCanvas* canvas) { 
    canvas->drawColor(SK_ColorWHITE); 

    SkPaint paint; 
    paint.setStyle(SkPaint::kStroke_Style); 
    paint.setStrokeWidth(8); 
    paint.setColor(0xff1f78b4); 
    paint.setAntiAlias(true); 
    paint.setStrokeCap(SkPaint::kRound_Cap); 

    SkPath path; 
    path.moveTo(10, 10); 
    path.quadTo(256, 64, 128, 128); 
    path.quadTo(10, 192, 250, 250); 
    canvas->drawPath(path, paint); 
} 

demo

+0

Ich denke, du hast Recht mit Skia! Ich checke es jetzt aus. –

Verwandte Themen