绘制一个圆角矩形,一侧为圆角[重复]

Posted

技术标签:

【中文标题】绘制一个圆角矩形,一侧为圆角[重复]【英文标题】:Drawing a rounded rectangle with one side rounded [duplicate] 【发布时间】:2011-07-01 23:28:49 【问题描述】:

可能重复:ios Draw Rectagle with curved ends

在 Objective-C(一个 iPhone 应用程序)中,我将如何编写一个接收 CGRect 并绘制单边圆角矩形的函数。这是单边圆角矩形的样子:

ooooooooooooooo
o               o
o                 o
o                o
o               o
ooooooooooooooo

那幅画很难看,但基本上,它就像一支铅笔,只是圆边没有那么尖。我想使用CGContext 方法的组合来做到这一点。有人可以提供此代码吗?

【问题讨论】:

This one 告诉您如何绘制一个所有 4 个角都为圆角的圆角矩形 - 调整其中的 2 个角应该不难。 谢谢丹尼尔。我尝试使用该代码,但无法弄清楚。我只想要矩形(右侧)上的一个圆形边。我只是不知道如何使用 CGContextAddArcToPoint 方法。 很高兴为您提供帮助。不过,不要害怕尝试一些东西。尤其是在绘图方面,最糟糕的情况是您绘制的东西并不是您想要的,而绘制的任何东西都会让您了解相关功能的工作原理。 【参考方案1】:

UIBezierPath 提供了许多构造各种路径的方法。如果这还不够,CoreGraphics(又名 Quartz)提供了一套完整的路径操作。这些解决方案中的任何一个都足以绘制您描述的路径。

【讨论】:

我见过这些方法,但还是想不通。你能解释一下 CGContextAddArcToPath 方法吗?我似乎无法弄清楚如何使用那个。参数是什么意思? 猜你的意思是CGContextAddArcToPoint,对吧?参数在那里解释。您提供两条形成角度的线,因此您需要三个点:起点、顶点和终点。起点是路径中的当前点,所以只需要指定第一行(顶点)的终点和第二行的终点。您还提供半径。尝试使用一些不同的值,您会很快看到它是如何工作的。 非常感谢!现在我明白了。

以上是关于绘制一个圆角矩形,一侧为圆角[重复]的主要内容,如果未能解决你的问题,请参考以下文章

MFC怎么绘制一个圆角矩形

QT 5.7 QML 快速半透明矩形,一侧有圆角

Android:如下关于绘制圆角矩形边框问题,怎么解决?

如何快速绘制简单的圆角矩形(圆角)

canvas绘制圆角矩形

在 Swift 2.3 中使用 Bezier Path 和 Storyboard 绘制一个只有两个圆角的矩形 [重复]