我正在导入大量原始绘图数据(笔划)并将其转换为图像。到目前为止,我使用了基本的HTML5 Canvas,这很好。但我想自己实现画线算法,因为它可以节省很多麻烦。Chrome使用了哪种反锯齿线绘制算法?
所以我实现Xiaolin Wu's line algorithm,但是当我用帆布把它比我以前的成绩并没有真好看:
左5列:吴小林直线算法,右5列: HTML5 Canvas(最新版本的Chrome)算法
那么他们使用什么算法?源代码是否可用?我需要的是绘制单线的算法。
我正在导入大量原始绘图数据(笔划)并将其转换为图像。到目前为止,我使用了基本的HTML5 Canvas,这很好。但我想自己实现画线算法,因为它可以节省很多麻烦。Chrome使用了哪种反锯齿线绘制算法?
所以我实现Xiaolin Wu's line algorithm,但是当我用帆布把它比我以前的成绩并没有真好看:
左5列:吴小林直线算法,右5列: HTML5 Canvas(最新版本的Chrome)算法
那么他们使用什么算法?源代码是否可用?我需要的是绘制单线的算法。
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);
}
我认为你是正确的与Skia!我正在结帐。 –
相关[在android.graphics.Canvas使用算法(https://stackoverflow.com/questions/27871855/algorithms-used-in-android-图形 - 画布)(在Android中使用相同的库) – aloisdg