ios - 求圆内五边形的位置

标签 ios

我想在一个圆圈内的五边形角上画小圆圈。

我知道以下信息。

  1. 圆的半径是50。
  2. 圆心为 x = 100, y = 100

如何获得五边形角在 x 和 y 中的位置,以便在那里画一个圆。

谢谢。

enter image description here

最佳答案

希望您熟悉polar coordinates .我写了一个简单的算法来计算角点:

let center = CGPoint(x: 100, y: 100)

let numberOfCorners: Int = 5
let radius = 50.0
var angle:Double = 0.0
let startAngle = M_PI_2

var points: [CGPoint] = []

angle = startAngle
while angle - startAngle < 2*M_PI {

    let x = radius * cos(angle) + Double(center.x) // transform polar coordinates to XY
    let y = radius * sin(angle) + Double(center.y)
    let point = CGPoint(x: x, y: y)
    points.append(point)

    let angleIncrease = Double(2.0*M_PI)/Double(numberOfCorners)
    angle += angleIncrease
}

print(points)

它应该适用于其他多边形。您只需指定 numberOfCorners 和 startAngle(以弧度为单位)。我认为 iOS 坐标的正确 StartAngle 是:3/2 PI

但是对于默认的 XY 平面 来实现图片上的多边形,pi/4 就可以了。

enter image description here

关于ios - 求圆内五边形的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33474367/

相关文章:

ios - 使用或不使用 shouldRasterize

ios - NSCameraUsageDescription 在 Xcode 9 中不起作用

ios - 使用 iOS 后台传输服务下载多个文件

ios - Swift - 如何用单元格填充 Collection View

ios - 从服务器 swift 更新数组中的更改

ios - Macbook 1,1 - IOS 5.0.1 - Xcode 4.2 - 如果我用它开发,它能在当前的一代设备上运行吗?

ios - 仅允许一个 Controller 旋转

ios - 如何使用 pushWoosh 更新 iOS 角标(Badge)?

ios - 'downloadURL( )' is deprecated: Use ` StorageReference.downloadURLWithCompletion()` 获取当前下载 URL。

ios - 重新启动后 NSURLCache 未从磁盘加载