Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中绘制自定义矩形_Java_Draw_Drawrectangle_Path 2d - Fatal编程技术网

如何在java中绘制自定义矩形

如何在java中绘制自定义矩形,java,draw,drawrectangle,path-2d,Java,Draw,Drawrectangle,Path 2d,我要问的问题几乎是重复的: 但我想在顶部做圆角 我试图修改代码,但我对这张Java绘图还很陌生,没有让它工作/ 所以我的问题是,我该如何修改它: moveTo(0,0); lineTo(0, radius); curveTo(0, 0, radius, radius, 0, radius); lineTo(width, height - radius); curveTo(width, height, width, height, width - radius, height); lineTo(0

我要问的问题几乎是重复的:

但我想在顶部做圆角

我试图修改代码,但我对这张Java绘图还很陌生,没有让它工作/

所以我的问题是,我该如何修改它:

moveTo(0,0);
lineTo(0, radius);
curveTo(0, 0, radius, radius, 0, radius);
lineTo(width, height - radius);
curveTo(width, height, width, height, width - radius, height);
lineTo(0, height);
closePath();
使圆角成为顶角。

moveTo(0,0);
lineTo(0, radius);
curveTo(0, 0, radius, radius, 0, radius);
lineTo(width, height - radius);
curveTo(width, height, width, height, width - radius, height);
lineTo(0, height);
closePath();
我真的很感激所有能帮我解决这个问题的答案


谢谢

关键是您希望可视化代码如何绘制对象。原始代码从左上角开始,以顺时针方向绘制

首先,你需要移动你的起点,如果你从一个角开始,而不是从一个圆边开始,这会容易得多

接下来,需要修改绘图,以便在正确的位置舍入边

moveTo(0, height);
lineTo(0, radius);
curveTo(0, 0, 0, 0, radius, 0);
lineTo(width - radius, 0);
curveTo(width, 0, width, 0, width, radius);
lineTo(width, height);
closePath();
所以,我在这里做的是:

  • 从左下角开始
  • 垂直移动到位于左上角的曲线起点
  • 在左上角绘制曲线
  • 水平移动到位于右上角的曲线起点
  • 在右上角绘制曲线
  • 垂直移动到右下角
  • 关闭形状(水平移动到左下角)

  • 关键是您希望可视化代码如何绘制对象。原始代码从左上角开始,以顺时针方向绘制

    首先,你需要移动你的起点,如果你从一个角开始,而不是从一个圆边开始,这会容易得多

    接下来,需要修改绘图,以便在正确的位置舍入边

    moveTo(0, height);
    lineTo(0, radius);
    curveTo(0, 0, 0, 0, radius, 0);
    lineTo(width - radius, 0);
    curveTo(width, 0, width, 0, width, radius);
    lineTo(width, height);
    closePath();
    
    所以,我在这里做的是:

  • 从左下角开始
  • 垂直移动到位于左上角的曲线起点
  • 在左上角绘制曲线
  • 水平移动到位于右上角的曲线起点
  • 在右上角绘制曲线
  • 垂直移动到右下角
  • 关闭形状(水平移动到左下角)

  • 关键是您希望可视化代码如何绘制对象。原始代码从左上角开始,以顺时针方向绘制

    首先,你需要移动你的起点,如果你从一个角开始,而不是从一个圆边开始,这会容易得多

    接下来,需要修改绘图,以便在正确的位置舍入边

    moveTo(0, height);
    lineTo(0, radius);
    curveTo(0, 0, 0, 0, radius, 0);
    lineTo(width - radius, 0);
    curveTo(width, 0, width, 0, width, radius);
    lineTo(width, height);
    closePath();
    
    所以,我在这里做的是:

  • 从左下角开始
  • 垂直移动到位于左上角的曲线起点
  • 在左上角绘制曲线
  • 水平移动到位于右上角的曲线起点
  • 在右上角绘制曲线
  • 垂直移动到右下角
  • 关闭形状(水平移动到左下角)

  • 关键是您希望可视化代码如何绘制对象。原始代码从左上角开始,以顺时针方向绘制

    首先,你需要移动你的起点,如果你从一个角开始,而不是从一个圆边开始,这会容易得多

    接下来,需要修改绘图,以便在正确的位置舍入边

    moveTo(0, height);
    lineTo(0, radius);
    curveTo(0, 0, 0, 0, radius, 0);
    lineTo(width - radius, 0);
    curveTo(width, 0, width, 0, width, radius);
    lineTo(width, height);
    closePath();
    
    所以,我在这里做的是:

  • 从左下角开始
  • 垂直移动到位于左上角的曲线起点
  • 在左上角绘制曲线
  • 水平移动到位于右上角的曲线起点
  • 在右上角绘制曲线
  • 垂直移动到右下角
  • 关闭形状(水平移动到左下角)

  • 谢谢你的回答!这真的让我明白了该如何思考。如果你愿意,你可以再多了解一点第三步。五,,通过曲线,了解如何使用3个不同的x和y点绘制曲线。我会尽快尝试一下,看看是否有效。@raxelsson,curveTo方法绘制了一条“与当前坐标和指定坐标相交的贝塞尔曲线(x3,y3)”()。你可能想在维基百科上了解更多关于Bézier曲线的信息,但本质上这两点相同的原因是将其转换为二次Bézier曲线。再次感谢@USER3507600谢谢你的回答!这真的让我明白了该如何思考。如果你愿意,你可以再多了解一点第三步。五,,通过曲线,了解如何使用3个不同的x和y点绘制曲线。我会尽快尝试一下,看看是否有效。@raxelsson,curveTo方法绘制了一条“与当前坐标和指定坐标相交的贝塞尔曲线(x3,y3)”()。你可能想在维基百科上了解更多关于Bézier曲线的信息,但本质上这两点相同的原因是将其转换为二次Bézier曲线。再次感谢@USER3507600谢谢你的回答!这真的让我明白了该如何思考。如果你愿意,你可以再多了解一点第三步。五,,通过曲线,了解如何使用3个不同的x和y点绘制曲线。我会尽快尝试一下,看看是否有效。@raxelsson,curveTo方法绘制了一条“与当前坐标和指定坐标相交的贝塞尔曲线(x3,y3)”()。你可能想在维基百科上了解更多关于Bézier曲线的信息,但本质上这两点相同的原因是将其转换为二次Bézier曲线。再次感谢@USER3507600谢谢你的回答!这真的让我明白了该如何思考。如果你愿意,你可以再多了解一点第三步。五,,通过曲线,了解如何使用3个不同的x和y点绘制曲线。我会尽快尝试一下,看看它是否有效。@raxelsson,curveTo方法绘制了一条与当前坐标和t相交的“Bézier曲线”