Closed RockyF closed 7 years ago
此处坐标没有负数的概念,OK ?
画一张png上去,我只想画右下角的部分,那坐标不是会小于0吗!
坐标是倒置的,左上角是原点(0,0),向下 y,向右 x。
我看了Image.cc的源码,发现void PixelArray::Draw(PixelArray *src, size_t x, size_t y)
方法里,如果x或y 小于0,那么if(x < dw && y < dh){
肯定为false
,所以没有画出来。
我想把圆的图画到方的图上难道不行吗?这样圆的图的坐标不是要小于0了吗!
你可以先画方块,然后再画圆圈。
圆和方只是举例。。。你可以试试,draw()如果坐标小于0会不会成功。
@RockyF 当然不成功啊,就没有这样的坐标设定。你能不能去看看 convas 的坐标相关的知识再来讨论这个问题?
这么说不太准确,这个库的坐标就是 左上角 是原点,x 向右,y 向下。你必须遵循这个坐标设定才能做一些事情。
亲测,HTML5的canvas在draw的时候坐标都能小于0。 你的意思就是说这个库在draw的时候坐标不能小于0? 怎么会没有这种需求呢?
我知道 @RockyF 啥意思了:刚看了下现在的代码,
x = args[1]->Uint32Value();
y = args[2]->Uint32Value();
dst->pixels->Draw(src->pixels, x, y);
写的时候直接认为是正数了。。 -_- !!!
我感觉没必要实现负坐标 @zhangyuanwei ,实现它搞毛?
那是因为你 @xiangshouding 暂时没有这种需求而已,不能保证别人没有这种需求。
@RockyF 现在改代码再编译发布有点麻烦,要是应急得话,可以用现有API做出来。就是先把圆形做裁剪,然后再画到矩形左上角上。
经测试,如果坐标小于0,就会绘制失败,请修复。