如何基于已知点与角度,确定圆弧段内中点角度位置的点
获取圆弧段中点(initialAngle位置)的点
嘿,我看你已经搞定了圆弧段内黄色点的计算,现在要找那个在圆弧段中点(也就是你定义的initialAngle位置)的红色点其实很简单~
你只需要把计算角度的参数换成initialAngle,同时沿用你计算黄色点时的半径逻辑就行,直接上代码:
// 保留你原来的参数设置 let incrementAngle: CGFloat = .pi / 6 let ratio :CGFloat = .pi / 6 let origin = CGPoint(x: frame.size.width / 2, y: frame.size.height / 2) let initialAngle = incrementAngle / 2 let radius = // 这里填入你代码里实际使用的radius数值 // 计算圆弧段中点的红色点 let redPoint = CGPoint( x: origin.x + cos(initialAngle) * radius * 1.5 * ratio, y: origin.y + sin(initialAngle) * radius * 1.5 * ratio )
简单解释下:
- 你定义的
initialAngle本身就是圆弧段的中点角度(incrementAngle/2),所以直接用它作为三角函数的角度参数就对了 - 半径部分和黄色点的计算逻辑完全一致,这样红色点会和黄色点在同一段圆弧的半径线上,正好落在中点位置
- 如果想让红色点更靠近圆心,只要调整
1.5这个乘数就行,比如改成1.0或者0.8都会让它往圆心方向移动
内容的提问来源于stack exchange,提问作者dper
相关产品推荐
相关产品推荐

