CGContextAddArc

本文介绍了iOS开发中常用的绘图函数,包括圆周率等数学常数的定义、CGContextAddArc函数的使用方法及其参数含义,并通过实例展示了如何绘制扇形。

摘要先来复习一下常用的iOS开发函数
1.常用名称 对应常数
M_PI 圆周率(π)
M_PI_2 π/2
M_PI_4 π/4
M_1_PI 1/π
M_2_PI 2/π
2.使用 CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)
下面来解释一下参数的意义:
c是获取的上下文 (x,y)圆心 radius (半径) startAngle(开始弧度) endAngle(结束弧度) clockwise//绘制方向 YES逆时针;NO顺时针
3.举个例子
CGContextAddArc(context, 160, 200, 100, 0, 45*(M_PI/180), 0);
所以对上面这对代码的解释是这样的:
1)startAngle为0
2)endAngle为 π/4
3)clockwise为0,红色区域绘制的图形。
4)所以效果就是红色的扇形。
补充:如果clockwise为1,则是绿色这里写图片描述色部分区域。

在编程中使用 `drawRect` 方法绘制矩形通常涉及到图形界面的绘制操作,尤其是在基于 `UIKit`(iOS)或 `Java Swing`(Java)等框架中。`drawRect` 方法通常用于自定义视图的绘制逻辑,它会在视图需要显示时被系统调用。以下分别介绍在 iOS 和 Java 中如何使用 `drawRect` 方法绘制矩形。 ### 在 iOS 中使用 `drawRect` 在 iOS 开发中,可以通过继承 `UIView` 并重写 `drawRect:` 方法来实现自定义绘制。绘制矩形可以使用 `Core Graphics` 框架提供的 API 来完成。 ```objective-c #import "CustomView.h" @implementation CustomView - (void)drawRect:(CGRect)rect { // 获取当前绘图上下文 CGContextRef context = UIGraphicsGetCurrentContext(); // 定义矩形区域 CGRect rectangle = CGRectMake(50, 50, 200, 100); // x, y, width, height // 设置填充颜色 [[UIColor redColor] setFill]; // 绘制矩形并填充颜色 CGContextFillRect(context, rectangle); } @end ``` 此代码会在视图上绘制一个红色的矩形,其左上角坐标为 (50, 50),宽度为 200,高度为 100[^2]。 ### 在 Java 中使用 `drawRect` 在 Java 中,特别是在使用 `Swing` 或 `AWT` 进行 GUI 编程时,可以通过继承 `JPanel` 并重写 `paintComponent` 方法来实现自定义绘制。虽然 Java 中没有直接的 `drawRect` 方法,但 `Graphics` 类提供了 `drawRect` 方法用于绘制矩形。 ```java import javax.swing.*; import java.awt.*; public class CustomPanel extends JPanel { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); // 设置绘制颜色 g.setColor(Color.BLUE); // 绘制矩形 g.drawRect(50, 50, 200, 100); // x, y, width, height } public static void main(String[] args) { JFrame frame = new JFrame("Draw Rect Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200); frame.add(new CustomPanel()); frame.setVisible(true); } } ``` 此代码会在窗口中绘制一个蓝色的矩形,其左上角坐标为 (50, 50),宽度为 200,高度为 100[^1]。 ### 绘制带圆角的矩形 如果你想绘制一个带圆角的矩形,可以使用更复杂的路径绘制方法,如下所示: ```objective-c - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); UIGraphicsPushContext(context); CGRect boxRect = CGRectMake(0, 0, 90, 90); float radius = 10.0f; CGContextBeginPath(context); CGContextMoveToPoint(context, CGRectGetMinX(boxRect) + radius, CGRectGetMinY(boxRect)); CGContextAddArc(context, CGRectGetMaxX(boxRect) - radius, CGRectGetMinY(boxRect) + radius, radius, 3 * (float)M_PI / 2, 0, 0); CGContextAddArc(context, CGRectGetMaxX(boxRect) - radius, CGRectGetMaxY(boxRect) - radius, radius, 0, (float)M_PI / 2, 0); CGContextAddArc(context, CGRectGetMinX(boxRect) + radius, CGRectGetMaxY(boxRect) - radius, radius, (float)M_PI / 2, (float)M_PI, 0); CGContextAddArc(context, CGRectGetMinX(boxRect) + radius, CGRectGetMinY(boxRect) + radius, radius, (float)M_PI, 3 * (float)M_PI / 2, 0); CGContextClosePath(context); CGContextFillPath(context); UIGraphicsPopContext(); } ``` 此代码会绘制一个具有圆角的矩形,并使用当前颜色填充该矩形[^3]。 ### 总结 无论是 iOS 还是 Java,使用 `drawRect` 方法绘制矩形的基本思路都是相似的:定义矩形的尺寸和位置,设置绘制属性(如颜色),然后调用相应的绘制方法。根据具体需求,还可以进一步扩展功能,例如绘制带圆角的矩形或填充图案等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值