나는 베지에 곡선이있는 게임을하고 있습니다. 현재이 모든 커브에서 복잡한 작업을 수행하지만 모든 것이 정상적으로 작동합니다.안드로이드의 사용자 정의 곡선
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로 인해 분명히 비현실적입니다.