You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于已知点与角度,确定圆弧段内中点角度位置的点

获取圆弧段中点(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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 18:57:48