Geçerli çeviri konumunu bir Canvas'dan nasıl alabilirim? Koordinatların göreceli (birbirine) ve mutlak (tuvale) bir karışımı olduğu şeyler çizmeye çalışıyorum.Geçerli çeviri pozisyonu Canvas'da nasıl bulunur?
private static Point getCurrentTranslate(Canvas canvas) {
float [] pos = new float [2];
canvas.getMatrix().mapPoints(pos);
return new Point((int)pos[0], (int)pos[1]);
}
...
Point p = getCurrentTranslate(canvas);
canvas.drawSomething(-p.x, -p.y);
tuval bir getMatrix yöntemi vardır, bir setTranslate
ama hiçbir getTranslate
vardır:
Bu işler ancak kirli ben
canvas.translate(x1, y1);
canvas.drawSomething(0, 0); // will show up at (x1, y1), all good
// now i want to draw a point at x2,y2
canvas.translate(x2, y2);
canvas.drawSomething(0, 0); // will show up at (x1+x2, y1+y2)
// i could do
canvas.drawSomething(-x1, -y1);
// but i don't always know those coords
yapmak istiyorsunuz diyelim. canvas.save()
ve canvas.restore()
'u kullanmak istemiyorum, çünkü çizim yaptığım şey biraz zor (ve muhtemelen dağınık ...)
Geçerli koordinatları almak için daha temiz bir yol var mı?