Soru & Cevap

XY düzlemi oluşturma. ...

25.06.2014 - 10:14

Arkadaşlar selamlar, onTouchListener ve MotionEvent kullanarak ekrandan dokunma ve koordinat bilgisi alıyorum fakat, tabiki ekrandan gelen koordinatlar. Ben ekran da bir XY düzlemi oluşsun ve ona göre koordinat alayım istiyorum ve bu sayede ortaya bir polygon şekli çıkarıp, alanını hesaplamayı planlıyorum. Bu konuda bir tecrübsei ya da fikri olan var mı ? Kullandığım kod : 

 

[code]import java.util.ArrayList;import java.util.List; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.Point; import android.os.Bundle; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new DrawingView(MainActivity.this)); } class DrawingView extends SurfaceView { private SurfaceHolder surfaceHolder; private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); private List<Point> pointsList = new ArrayList<Point>(); public DrawingView(Context context) { super(context); surfaceHolder = getHolder(); paint.setColor(Color.BLACK); paint.setStyle(Style.FILL); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { if (surfaceHolder.getSurface().isValid()) { // Add current touch position to the list of points pointsList.add(new Point((int) event.getX(), (int) event.getY())); // Get canvas from surface Canvas canvas = surfaceHolder.lockCanvas(); // Clear screen canvas.drawColor(Color.WHITE); // Iterate on the list for (int i = 0; i < pointsList.size(); i++) { Point current = pointsList.get(i); Point first = pointsList.get(0); // Draw points canvas.drawCircle(current.x, current.y, 5, paint); // Draw line with next point (if it exists) if (i + 1 < pointsList.size()) { Point next = pointsList.get(i + 1); canvas.drawLine(current.x, current.y, next.x, next.y, paint); canvas.drawLine(next.x, next.y, first.x, first.y, paint); c } } // Release canvas surfaceHolder.unlockCanvasAndPost(canvas); } } return false; }[/code]

Teşekkür ederim.

70 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user simonsero
simonsero
25.06.2014 - 03:13


Sorunu biraz daha açabilir misin ? Tam olarak şöyle birşey mi yapmayı planlıyorsun ekrana bir XY düzlemi çizdireceksin ve tabi o düzlemin (0,0) noktasını sen belirleyeceksin sonrada bu düzleme göre işlem yapacaksın öyle mi ?