iOS 绘制圆圈

2024-05-09

我正在尝试在我的 iOS 应用程序中创建下面的圆圈。我知道如何制作圆圈,但不完全确定如何沿着弧线获取点。它必须是代码而不是图像。下面也是我目前拥有的代码。

 - (void)drawRect:(CGRect)rect
{
    CGPoint point;
    point.x = self.bounds.origin.x + self.bounds.size.width/2;
    point.y = self.bounds.origin.y + self.bounds.size.height/2;

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(context, 2.0);

    CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);

    CGRect circle = CGRectMake(point.x/2,point.y-point.x/2,point.x,point.x);

    CGContextAddEllipseInRect(context, circle);

    CGContextStrokePath(context);

    for (int i = 0; i<8; i++) {
        CGRect circleMini = CGRectMake(??????,??????,point.x/4,point.x/4);

        CGContextAddEllipseInRect(context, circleMini);
        CGContextStrokePath(context);
    }

}

更新为答案

 float cita = 0;
for (int i = 0; i<8; i++) {

    CGPoint pointCir = CGPointMake(point.x/2 + radius * cos(cita) , (point.y-point.x/2) + radius * sin(cita) );
    CGRect circleMini = CGRectMake(pointCir.x,pointCir.y,radius/4,radius/4);

    CGContextAddEllipseInRect(context, circleMini);
    CGContextStrokePath(context);
    cita += M_PI / 4.0;
}

如果 (x,y) 是圆心,r 是大圆的半径,则第 i 个外圆的中心将是:

  center(i) = ( x + r * cos(cita) , y + r * sin(cita) )

cita 从 0 开始,并为下一个圆增加 PI/4 弧度(或 45 度)

工作实施

CGFloat cita = 0;
CGFloat bigCircleRadius = point.x / 2.0;
CGFloat smallCircleRadius = bigCircleRadius / 4.0;
for (int i = 0; i < 8; i++) {

    CGPoint smallCircleCenter = CGPointMake(point.x  + bigCircleRadius * cos(cita) - smallCircleRadius/2.0 , point.y + bigCircleRadius * sin(cita) - smallCircleRadius / 2.0 );
    CGRect smallCircleRect = CGRectMake(smallCircleCenter.x,smallCircleCenter.y,smallCircleRadius,smallCircleRadius);

    CGContextAddEllipseInRect(context, smallCircleRect);
    CGContextStrokePath(context);
    cita += M_PI / 4.0;
}

编辑:添加实现并重命名变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 绘制圆圈 的相关文章

  • 带孔的多边形三角剖分

    我正在寻找一种算法或库 更好 将多边形分解为三角形 我将在 Direct3D 应用程序中使用这些三角形 最好的可用选项是什么 这是我到目前为止发现的 本 迪斯科的笔记 http www vterrain org Implementation
  • 获取所有ios应用程序的全局列表[重复]

    这个问题在这里已经有答案了 我想对苹果应用商店进行一些全球统计 一个瓶颈是至少获取所有当前活动应用程序的 ID 这 9 位数字 有谁知道如何获取 iOS 应用商店中当前活动应用程序的所有 id 的完整列表 更好的是特定类别的所有 ID 例如
  • 聊天室成员列表

    如何检索正在使用的聊天室的成员列表XMPP framework 我尝试使用 void xmppRoom XMPPRoom sender didFetchMembersList NSArray items 但它返回一个空数组 这个问题很老了
  • 如何检测 UIImage 的非透明部分何时与 UIImage 的另一个非透明部分接触

    我在完成一些我认为会容易得多的事情时遇到了困难 每当 UIImage 中图片的非透明部分接触 UIImage 中包含的图像的另一个非透明部分时 我试图运行一个方法 我举了一个例子来帮助进一步解释我的问题 正如您在上图中看到的 我有两个三角形
  • UITextfield 键盘只有字母,没有数字,没有大写字母,没有空格键?

    我希望 UITextfield 的键盘只有 a z 没有数字 没有特殊字符 并且没有大写字母 基本上我想要一个只有字母的键盘 我已经能够禁用该空间了 有人知道如何禁用数字 特殊字符和大写字母吗 解决这些问题中的任何一个都很棒 对所有角色执行
  • iOS 7 UITableView:这是一个错误还是我的问题?

    请参阅附图 在 iOS 7 的表格视图中 UIKit 在附件视图和重新排序控件之间绘制一条细灰色垂直线 但是 当滚动表视图时 某些单元格中不会绘制这条线 附图中的单元格 1 2 和 8 中不存在该值 为什么是这样 我该如何修复它 我在 ip
  • 透视变形矩形的比例

    给定一张被透视扭曲的矩形的二维图片 我知道这个形状原本是一个矩形 但我不知道它原来的大小 如果我知道这张图片中角点的像素坐标 我如何计算原始比例 即矩形的商 宽度 高度 背景 目标是自动使矩形文档的照片不失真 边缘检测可能会通过霍夫变换完成
  • RestKit:如何删除核心数据条目以保持内容与服务器同步?

    我正在使用 RestKit RKObjectManager 从我的服务器获取数据并将其存储在核心数据中 请参阅我的其他post https stackoverflow com questions 17066214 restkit how t
  • 领域列表未存储在 Swift 4.2 的发布配置中

    我刚刚构建了我的应用程序的最新版本 并且遇到了一个问题List我的所有领域对象上的 s 都没有被存储 这是一些示例代码 Object public class ReportItem Object objc dynamic var id St
  • 自动布局+基于总行数的动态表高度约束

    首先 这与动态单元格的高度无关 所以不要把它搞混了 我有一个场景 我创建了三张卡 详细信息卡 显示位置的具体详细信息 图表卡 根据选择显示不同的图表 更多详细信息卡 卡显示更多详细信息 以下是上述卡片的屏幕 查看以上屏幕的层次结构 Cont
  • 找不到 -lDoubleConversion 的库

    我尝试在 XCode 上构建 但是ld library not found for lDoubleConversion发生错误 我可以建造react native run ios 这可行 但 XCode 无法构建 ld 警告 找不到选项 L
  • 有没有办法以编程方式选择 Segue 锚点?

    假设我有一个 Storyboard 其中包含一个包含按钮的视图 当用户按下此按钮时 会出现一个弹出窗口 因此 我需要使用 Xcode 将 Segue 拖动到按钮来设置锚点 然后执行使用标识符执行Segue 所以 我的问题是 有没有办法以编程
  • NSNotification 与dispatch_get_main_queue

    和 关联这个问题 https stackoverflow com questions 7905192 iphone grand central dispatch main thread我想知道关于何时使用 NSNotification 在主
  • 哪种算法可以有效地找到路径一定距离内的一组点?

    给定一组点s 一组 x y 坐标 和由连接一组点的线段组成的路径l 描述一种有效的算法 可用于从s在指定距离内d路径的l 其实际应用可能是查找沿城市之间的公路旅行路径 10 英里内任意位置的餐馆列表 For example in the f
  • Xcode 和 Waze 集成

    我正在尝试整合我的app with waze http www waze com 有人知道如何调用位智并发送坐标吗 我没有找到任何 API 或其他相关信息 void navigateToLatitude double latitude lo
  • 如何在调用-reloadData后保留UITableView contentoffset

    CGPoint offset table contentOffset table reloadData table setContentOffset offset animated NO unuseful block UITableView
  • UIView 子类中使用的 CAShapeLayer 不起作用

    我尝试了几个小时 用 CAShapeLayer 在 UIView 周围获得虚线边框 但我没有显示它 ScaleOverlay h import
  • 播放声音无延迟 iOS

    我找不到如何以低延迟播放真实声音的方法 我尝试使用 AVFoundation 音频播放器 巨大的延迟大约 500 毫秒 所以我尝试创建系统声音 如果运气不好 延迟大约为 200 毫秒 虽然不多 但对我来说没有用 我最多需要 50 毫秒 确保
  • 如何在 Safari 和 Native App 之间共享上下文?

    我有需要通过 Safari 设置一些上下文 上下文标记 然后从本机 iOS 应用程序读取该上下文 这样做的最佳实践是什么 到目前为止的一些想法 在 HTML 5 数据库中设置上下文 但我不确定这是否有效 因为该数据库可能只能从 Safari
  • Expo eas-cli iOS 构建失败

    我已经使用 React Native 创建了一个应用程序 并尝试通过 Expo 的 eas cli 创建一个 iOS 应用程序商店 跑步时eas build platform ios the Fastlane build failed wi

随机推荐

  • 使用对称密钥 (AES -128) 签名和验证消息

    我想知道对称密钥可以用来签署消息吗 我们可以使用共享密钥进行加密 另外 当使用对称密钥进行签名时 JAVA 中可以使用什么 API 来加载密钥并对消息进行签名 如果我使用 java security 中的 Signature 它有一个 ap
  • 谁应该在 MvvmCross 中创建视图模型实例

    澄清一下 我知道 MvvmCross 在创建视图模型的位置和方式方面非常灵活 我的问题更多的是关于适当的关注点分离 以简化复杂的跨平台应用程序的设计 假设我们有一个包含客户列表和客户详细信息的应用程序 在 iPad 和 Surface 上
  • python 2.7+ 中的组引用无效

    我正在尝试将我的网页 在 django 中创建 中的所有 WikiLink 类型的字符串转换为 html 链接 我正在使用以下表达式 import re expr r s A Z a z A Z a z s repl r a href 1
  • Java VM Windows CE 的最佳选择 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 LDAP 进行 Ruby on Rails 身份验证? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个网络应用程序 并且我有一个使用的身份验证方法bcrypt gem它工作正常 但我想将身份验
  • Swift 2.0 中的协议扩展方法调度

    我面临有关协议方法调度的问题 我有一个类层次结构 如下所示 protocol E func test extension E func test print jello class A E class B A func test print
  • 在什么情况下C++会在编译时进行数组边界检查?

    受到 使用编译时 HTML 解析的 C HTML 模板引擎 https github com rep movsd see phit 我正在尝试编写一个示例类来检查字符串中的第一个字符是否是a int dummy 0 class Test p
  • 程序每次运行都会生成相同的随机数? [复制]

    这个问题在这里已经有答案了 我刚刚完成扫雷类型游戏的编码 一切都很好 除了每次运行该应用程序时 它都会生成相同的数字 我运行了 3 次不同的时间 将输出保存到 3 个文本文件并使用diffLinux 中的命令 没有发现任何差异 它的种子是t
  • Bash - 如何将参数传递给通过标准输入读取的脚本

    我正在尝试从标准输入执行脚本并将参数传递给它 有办法做到吗 假设我有以下内容 cat script sh bash 我如何将参数传递给脚本 我不想这样做 bash script sh arguments 也不是这个 script sh ar
  • K&R 练习 1-9 (C)

    编写一个程序将其输入复制到 它的输出 替换每个字符串 一个或多个空格乘以一个空格 我假设他的意思是输入类似 We 空白 空白 空白 go blank to 空白 空白 空白 the blank mall 并输出如下 We blank go
  • 为什么 OpenGL 给对象提供句柄而不是指针?

    OpenGL 的传统是让用户使用 unsigned int 句柄来操作 OpenGL 对象 为什么不直接给出一个指针呢 与指针相比 唯一 ID 有何优点 TL DR OpenGL ID 不会双射映射到内存位置 单个 OpenGL ID 可能
  • (Zend Framework > Zend_Config) 如何避免使用 .ini 或 .xml 配置?

    我认为对于高流量项目来说使用 ini 或 xml 文件不是一个好主意 因为每个页面加载都会导致解析 config ini 或 xml 文件 有什么方法可以用常规 php 数组替换使用 ini xml 作为配置吗 现在 php ini 看起来
  • 如何在 xamarin.forms 中隐藏列表视图的空行

    我有一个StackLayout with a ListView我有一个添加按钮 我想将其显示在ListView 但是ListView显示许多未使用的行 只是空行 这迫使我的按钮显示在页面底部 我一直在搞乱VerticalOptions一整天
  • UML 到 Java 代码生成工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 python 将对数概率转换为 0 到 1 值之间的简单概率

    我使用高斯混合模型进行说话人识别 我使用此代码来预测每个语音剪辑的说话者 for path in file paths path path strip print path sr audio read source path vector
  • 使用 C++ 输出字符串覆盖 Linux 终端上的最后一个字符串

    假设我有一个命令行程序 有没有办法让我说的时候 std cout lt lt stuff 如果我不做std cout lt lt n 在另一个之间std cout lt lt stuff 东西的另一个输出将覆盖同一行上的最后一个东西 清理行
  • Windows Sandbox PowerShell 登录命令窗口不可见

    我正在尝试通过 PowerShell 登录命令使用 Windows Sandbox 这是LogonCommand我的 WSB 文件的部分
  • 更改使用 ClosedXML 显示的工作表

    我正在使用 ClosedXML 动态创建包含多个工作表的 Excel 工作簿 生成内容后 我正在努力将所选工作表更改回工作簿中的第一个工作表 并且在文档中找不到有关如何更改显示的工作表的任何内容 我努力了 wb Worksheet 1 Se
  • 为什么我在安装 Rails 时会出现“写权限”错误?

    当我使用rvm use 1 9 2 我得到 Rails v3 0 0 vikas admin1 DL H61MXEL rvm use 1 9 2 default Using home vikas rvm gems ruby 1 9 2 p3
  • iOS 绘制圆圈

    我正在尝试在我的 iOS 应用程序中创建下面的圆圈 我知道如何制作圆圈 但不完全确定如何沿着弧线获取点 它必须是代码而不是图像 下面也是我目前拥有的代码 void drawRect CGRect rect CGPoint point poi