2017-09-01 101 views
0

我正在导入大量原始绘图数据(笔划)并将其转换为图像。到目前为止,我使用了基本的HTML5 Canvas,这很好。但我想自己实现画线算法,因为它可以节省很多麻烦。Chrome使用了哪种反锯齿线绘制算法?

所以我实现Xiaolin Wu's line algorithm,但是当我用帆布把它比我以前的成绩并没有真好看:

左5列:吴小林直线算法,右5列: HTML5 Canvas(最新版本的Chrome)算法

那么他们使用什么算法?源代码是否可用?我需要的是绘制单线的算法。

+0

相关[在android.graphics.Canvas使用算法(https://stackoverflow.com/questions/27871855/algorithms-used-in-android-图形 - 画布)(在Android中使用相同的库) – aloisdg

回答

1

Google Chrome由开源的Chromium提供支持。

Chromium主项目位于https://www.chromium.org/

源代码可在https://chromium.googlesource.com/

下一步是浏览一下。他们正在使用库Skia来绘制哪个也是开源的。你可以在你的项目中使用它,你应该很好。

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

我认为你是正确的与Skia!我正在结帐。 –