我正在尝试编写一个我可以在Android中使用的图形类(我知道预先存在的图形类),但转换我的所有坐标都会很痛苦。是否有一种简单的方法可以让屏幕坐标从左下方开始?
答案 0 :(得分:9)
不,我不知道如何将0,0
移到左下方并获得您通常认为的“正常”坐标。
但是组合scale()
和translate()
可能会达到同样的效果。
canvas.translate(0,canvas.getHeight()); // reset where 0,0 is located
canvas.scale(1,-1); // invert
答案 1 :(得分:1)
您可以使用canvas.scale(1, -1)
之类的内容翻转您的画布,然后将其翻译到正确的位置。
答案 2 :(得分:0)
您可以使用canvas.translate()
http://developer.android.com/reference/android/graphics/Canvas.html#translate(float, float)将原点移动到您想要的位置。
答案 3 :(得分:0)
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
这应该使您的行从左下角开始。