我正在尝试编写一个图形类,以在Android中使用(我知道已经存在预制的类),但转换所有坐标将是一件麻烦的事情。有没有一种简单的方法使屏幕坐标从左下角开始?
我正在尝试编写一个图形类,以在Android中使用(我知道已经存在预制的类),但转换所有坐标将是一件麻烦的事情。有没有一种简单的方法使屏幕坐标从左下角开始?
不,我不知道如何将0,0
移动到左下角并获得通常认为的“正常”坐标。
但是,结合使用scale()
和translate()
可能会达到同样的效果。
canvas.translate(0,canvas.getHeight()); // reset where 0,0 is located
canvas.scale(1,-1); // invert
canvas.save()
,在完成绘制后调用canvas.restore()
。 - LeffelManiacanvas.scale(1, -1)
的方法翻转您的画布,然后将其移动到正确的位置。canvas.translate()
http://developer.android.com/reference/android/graphics/Canvas.html#translate(float, float) 来移动原点到你想要的位置。Android画布的原点位于左上角。您想将其转换为右下角。要进行此转换,请从画布高度中减去y坐标。
float X1 = xStart;
float Y1 = canvas.getHeight() - yStart; //canvas is a Canvas object
float X2 = xEnd;
float Y2 = canvas.getHeight() - yEnd;
canvas.drawLine(X1, Y1, X2, Y2, paint ); //paint is a Paint object
这应该使您的行从左下角开始。
canvas.getWidth()
),Y = [0,canvas.getHeight()
)。 - LeffelMania