gpt4 book ai didi

java - 如何在一张图像中绘制曲线和直线?

转载 作者:行者123 更新时间:2023-12-01 13:38:28 24 4
gpt4 key购买 nike

我正在尝试绘制基本上是一个圆角矩形,加上其一端的一个正方形。有点像电池。我有一些限制,基本上它必须仅使用一个绘画对象来完成,并且应该能够支持笔画。

这是我到目前为止的代码:

int width = 0;
int height = 0;

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

// myPath outline
Point[] myPath = { new Point(20, 20), new Point(width, 20), new Point(width, height), new Point(20, height),
new Point(20, height - 20), new Point(0, height - 20), new Point(0, height - 40),
new Point(20, height - 40) };

// Paint
Paint paint = new Paint();
int color = 0xffff0000;
paint.setColor(color);
paint.setAntiAlias(true);
// paint.setPathEffect(new CornerPathEffect(15));
paint.setStyle(Paint.Style.FILL);

// Path moves
Path path = new Path();

path.moveTo(myPath[0].x, myPath[0].y);
int j = myPath.length;
for (int i = 0; i < j; i++) {
path.lineTo(myPath[i].x, myPath[i].y);
}
path.close();

Bitmap toDrawOn;
toDrawOn = Bitmap.createBitmap(getWidth(), getHeight(), Config.ARGB_8888);
Canvas ofScreen = new Canvas(toDrawOn);
ofScreen.drawPath(path, paint);
canvas.drawBitmap(toDrawOn, 0, 0, paint);

}

这给了我一个我正在寻找的电池形状,但我不知道如何圆化前 4 个角而不圆化末尾小正方形的角。同样,我需要它是一种形状,因为稍后我需要对其应用描边。我也无法使用 9patch,因为我需要以编程方式更改颜色。

这是我的目标:

enter image description here

最佳答案

使用path.quadTo (the javadoc for it) 。因为这个形状太简单了,我就一行一行地写出来。这是它的开始。

int borderRadius = 15;
Path path = new Path();
path.moveTo(borderRadius , 0);
path.lineTo(width-borderRadius, 0); // top side
path.quadTo(width, 0, width, borderRadius); // top right corner
path.lineTo(width, height-borderRadius); // right side
path.quadTo(width, height, width-borderRadius, height); // bottom right corner
...
path.close();

关于java - 如何在一张图像中绘制曲线和直线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21055809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com