2014-11-01 48 views
1

我正在做一些有貝塞爾曲線的遊戲。目前,一切都很好,它的工作原理應該是這樣,儘管我在這條曲線上做了一些複雜的操作。要繪製曲線,我用的是帆布和路徑,像這樣:Android中的自定義曲線

private void refresh() { 
    mPath = new Path(); 
    mPath.moveTo(start_x, start_y); 
    mPath.cubicTo(anchor1_x, anchor1_y, anchor2_x, anchor2_y, end_x, end_y); 
} 
public void draw(Canvas canvas, Paint paint) { 
    Path newPath = new Path(mPath); 
    Matrix mMatrix = new Matrix(); 
    mMatrix.setTranslate(-mCamera.x1, -.mCamera.y1); 
    mMatrix.postScale(mCamera.getWidthRatio(), mCamera.getHeightRatio()); 
    newPath.transform(mMatrix); 
    canvas.drawPath(newPath, paint); 
} 

油漆參數是ussually下列之一:

curvesPaint = new Paint(); 
curvesPaint.setColor(0xFFFFFFFF); 
curvesPaint.setAntiAlias(true); 
curvesPaint.setStrokeCap(Paint.Cap.ROUND); 
curvesPaint.setStrokeJoin(Paint.Join.ROUND); 
curvesPaint.setStyle(Paint.Style.STROKE); 
curvesPaint.setStrokeWidth(canvas.getHeight()/100f); 
if (shadow) 
     curvesPaint.setShadowLayer(canvas.getHeight()/50f, 0, 0, 0xAAFFFFFF); 
else 
    curvesPaint.setShadowLayer(0, 0, 0, 0xAAFFFFFF); 

我的問題是:我怎樣才能使曲線更漂亮?此刻,他們只是白色(或白色的白色陰影)。我想能夠在他們身上繪製出一個很好的漸變或模型,我不知道該怎麼做。我正在考慮Paint類的setShader函數,但我不知道我是否可以將其用於我的目的或如何使用它。其他的解決方案,比如一個在另一個之上繪製多條路徑,由於低fps顯然是不切實際的。

回答

0

我建議你開始着眼於使用OpenGL或第三方包裝庫,如libgdx。 Canvas意味着相對簡單的圖形。我不認爲它利用設備的GPU。要利用GPU的全部功能,您將需要使用OpenGL。