- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有圆心和圆的半径,我只想得到圆的面积覆盖的所有CGPoint
。基本上我需要通过这些 CGPoint
获取所有像素,我有一个通过 CGPoint
从 UIImage 获取像素的代码。当用户点击时,我通过 UITapGestureRecognizer
获取圆的中心点。我已经知道圆的半径了。
谁能告诉我如何从圆圈中获取所有 CGPoint
或像素。谢谢
例如下面圆的原点是CGPoint(x: 206, y: 105),圆的直径是50。
另一个例子我怎样才能得到这些所有的 CGPoints
最佳答案
首先,您可能会在距离中心的半径范围内得到 minX 和 minY。
其次,逐点检查并计算到中心的距离。
func distance(from: CGPoint, to: CGPoint) -> CGFloat {
return CGFloat(sqrt((from.x - to.x)*(from.x - to.x) + (from.y - to.y)*(from.y - to.y)))
}
func isInCircle(withCenter center: CGPoint, point: CGPoint, radius: CGFloat) -> Bool {
return distance(from: center, to: point) <= radius
}
func getPoints(withCenter center:CGPoint, radius: CGFloat) -> [CGPoint] {
let minX = Int(center.x - radius)
let minY = Int(center.y - radius)
let maxX = Int(center.x + radius)
let maxY = Int(center.y + radius)
var result = [CGPoint]()
for x in minX...maxX {
for y in minY...maxY {
let point = CGPoint(x: x, y: y)
if isInCircle(withCenter: center, point: point, radius: radius) {
result.append(point)
}
}
}
return result
}
let x = getPoints(withCenter: CGPoint.init(x: 206, y: 150), radius: 50)
print(x)
关于ios - 获取圆区域内的所有CGPoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57762257/
在我的应用程序中,我有两个按钮和一个每秒触发一个操作的计时器。每秒,它生成四个随机数。这些数字用作按钮的 X 和 Y 值,并且按钮移动到新的点。然而,有时新点很接近,因此按钮会重叠。我如何检查以确保不
我计算两个 CGPoint 之间的角度: //calculate radian and degree CGPoint diff = ccpSub(center, locatio
我想在两点之间的弧线上显示图像。我有一个起始 CGPoint 和一个结束 CGPoint。我已经使用 SceneKit 和其他生成整个拱门和图表的答案看到了类似这样的答案。我只是在常规 View 中工
好的,我想将 CGPoint(A) 围绕 CGPoint(B) 旋转 50 度,有什么好的方法吗? CGPoint(A) = CGPoint(x: 50, y: 100) CGPoint(B) = C
我正在生成一些位置随机的圆圈。我要防止的是圆圈相互重叠。所以我想将新生成的 CGPoint 值与数组中的值进行比较,如果该值位于其中一个 CGPoint 的半径区域中,则让它生成一个新值。 除了重叠的
我有一个使用函数 addCurveToPoint 由 CGPoint 数组组成的 UIBezierPath,这里是一些代码: UIBezierPath *path = [[UIBezierPath a
我正在尝试使用两个 UIButton。一个距离它们所在的 UIView 边缘 8 点,第二个距离第一个开始 4 点。我现在正在做这个 let buttonFrames: CGSize = CG
我有一个使用 Core Graphics 的绘图应用程序。一切正常。我会画画。我添加了一个“撤消”按钮来撤消该行。它有效,但是...... 问题:每次按下“撤消”按钮时,它都会逐行删除。我正在尝试将
我找到了将 X、Y 转换为半径和角度的方程式: x = r*Cos(Q) y = r*Sin(Q) r= sqrt(x*x + y*y) Q = tan^-1(y/x) 我的问题是我不记得 Objec
我正在尝试编写一个 if 语句,表示如果 block1 的位置超过某个点,则这种情况会发生在 block3 上。但是,当我尝试使用 >= 进行比较时,出现错误:“无法使用列表类型的参数调用 >= (@
我有一个带有 CGPoint 的 NSMutableArray。当我尝试将对象添加到我的 CGPoint 变量时,我看到了这个错误: Assigning to 'CGPoint' (aka 'stru
我遇到了快速构建错误。 func pathRefFromText() -> CGPathRef { let attributed : NSAttributedString = self
我有这个属性: @property (nonatomic) NSArray *vertices; 其中顶点的类型为CGPoint。 我知道 swift 有一些方便的语言功能,例如 NS_SWIFT_N
你好,对于基于导航的应用程序,我需要从 MKMapView 的坐标或 MKMapPoint 获取 CGPoint。我想在这些点之间画一条线,而不是折线。 我对 MKPolyLine 和其他自定义折线了
我正在使用 Firebase,并尝试将 [CGPoint] 数据库用于实时游戏。我尝试将结构类型更改为 [NSValue] 因为至少它符合 AnyObject (请参阅下面的代码),但现在我收到运行时
有没有简单的方法来做到这一点。 我有一个 CGPoint pointA (10, 10) 和另一个 CGPoint pointB (15, 8)。我需要得到一个 CGPoint,它与连接 A 和 B
如何获取tableView中选定的sectionIndexTitle的点(CGPoint)?我没有找到任何方法来实现这一点。 - (NSInteger)tableView:(UITableView *
我的类的界面部分有 CGPoint @interface MyClass () { CGPoint point; } 在代码中我尝试为其设置值 point = CGPointMake(1, 3
我有一个 CGPoints 数组,我想找到那些构建形状的点。请看附图: 红色圆圈只是标记我的点数。 如何找到带问号的区域? 谢谢。 最佳答案 您必须从第一条线段开始并检查是否有交点。显然,如果前两条线
我正在用下面的线创建圆弧 func drawSomething(_ context: CGContext, rect: CGRect) { context.saveGState() l
我是一名优秀的程序员,十分优秀!