2010-09-28 11 views
8

me gustaría dibujar una curva que une los tres puntos en la pantalla de mi
punto A = (480,46) PointB = (160,137) PointC = (0.228)Dibujar una curva perfecta conexión de tres puntos

Cómo dibujar la curva con las API de Android?
Por favor, ayuda ..

Gracias,
Sen

+2

¿Qué tipo de curva? ¿Un arco de círculo? –

+0

Necesito dibujar un arco perfecto – Sen

+0

No se puede dibujar un círculo perfecto con 2 curvas de Bezier, pero puede agregar más para aproximarlo –

Respuesta

13

lo que quisiera, podría producirlo usando el siguiente código:

protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 

    PointF mPoint1 = new PointF(w/1.2F, h/1.2F); 
    PointF mPoint2 = new PointF(w/24, h/1.2F); 
    Path myPath1 = new Path(); 
    Paint paint = new Paint(); 
    paint.setAntiAlias(true); 
    paint.setStyle(Style.STROKE); 
    paint.setStrokeWidth(2); 
    paint.setColor(Color.WHITE); 

    myPath1 = drawCurve(canvas, paint, mPoint1, mPoint2); 
    canvas.drawPath(myPath1, paint); 

} 

private Path drawCurve(Canvas canvas, Paint paint, PointF mPointa, PointF mPointb) { 

    Path myPath = new Path(); 
    myPath.moveTo(63*w/64, h/10); 
    myPath.quadTo(mPointa.x, mPointa.y, mPointb.x, mPointb.y); 
    return myPath; 
} 

Esto encontrará los dos lados de la pantalla (Modo horizontal) y dibujará una curva perfecta en la pantalla.

Cuestiones relacionadas