将“画布”原点设置为Skia中的左下角

时间:2019-05-21 19:53:31

标签: skiasharp skia

如何将画布的原点设置为左下角而不是左上角?

https://fiddle.skia.org/c/e5fe08a701838b078c0ec6c98ef052c8

2 个答案:

答案 0 :(得分:1)

虽然我不相信您可以更改原点,但可以使用画布的边界来获取所需的点。

void draw(SkCanvas* canvas) {
    SkPaint p;
    p.setColor(SK_ColorRED);
    p.setAntiAlias(true);
    p.setStyle(SkPaint::kStroke_Style);
    p.setStrokeWidth(10);
    SkRect bounds = canvas->getLocalClipBounds();
    canvas->drawLine(bounds.fLeft + 200, bounds.fBottom - 20, bounds.fLeft + 100, bounds.fBottom - 100, p);
}

答案 1 :(得分:1)

您可以从画布中获取高度和宽度,然后减去它,我们可以使图形看起来像原点更改为左下角。

尝试此代码

void draw(SkCanvas* canvas) {
    SkPaint p;

    p.setColor(SK_ColorRED);
    p.setAntiAlias(true);
    p.setStyle(SkPaint::kStroke_Style);
    p.setStrokeWidth(10);

    canvas->drawLine(200, canvas->getDeviceClipBounds().height()-20, 100, canvas->getDeviceClipBounds().height()-100, p);
}