相关疑难解决方法(0)

如何找到两个CG点之间的距离?

当我们在UIScrollView中用两个手指进行多点触控时,我们得到两个CG点.我想找到它们之间的距离.然后我们再次进行捏(内部或外部),然后我们将再次得到两个点.然后在找到这两点之间的距离之后,我想决定是否捏入或捏出.如果我已经收入,肯定新的距离会更小,反之亦然.

但是不知道如何找到2点之间距离的准确测量值来进行比较?有人对此有所了解吗?

iphone cocoa-touch

72
推荐指数
5
解决办法
5万
查看次数

计算两个CGPoints之间距离的最快方法?

两点之间的距离:

sqrt((x1-x2)^2 + (y1-y2)^2)
Run Code Online (Sandbox Code Playgroud)

有没有办法在Objective-C中更快地完成这个数学运算?

编辑:我想我需要澄清一下.我写了上面的公式只是为了澄清我用来计算距离的公式.^并不意味着代表xor - 我只想表示数学公式而不使用任何函数,如pow或任何东西,所以我的意思是使用^来"提升电源".我想知道是否有人知道是否使用按位运算符,或者在汇编中编写代码会给出优化版本.我在iPhone/iPad应用程序中使用该公式.

math optimization objective-c euclidean-distance

13
推荐指数
3
解决办法
2万
查看次数

限制拖动到 SwiftUI 中的圆形边界

我想在 SwiftUI 中实现循环拖动,但不确定最好的方法。

这是基本的拖动代码 - 有一个小的可拖动圆圈,我想updating在 DragGesture 阶段将其限制在较大圆圈的范围内。目前,黑色圆圈可在整个视图中拖动。

import SwiftUI

struct ContentView: View {

  @State private var position = CGSize.zero
  @GestureState var dragOffset: CGSize = .zero

  private var dragRadius: CGFloat = 200.0

    var body: some View {
      ZStack {
        Circle()
          .fill(Color.red)
          .frame(width: dragRadius, height: dragRadius)

        Circle()
          .fill(Color.black)
          .frame(width: dragRadius / 4, height: dragRadius / 4)
          .offset(x: position.width + dragOffset.width, y: position.height + dragOffset.height)
          .gesture(
            DragGesture()
              .updating($dragOffset, body: { (value, state, transaction) in
                // Need to clamp to circular …
Run Code Online (Sandbox Code Playgroud)

ios swiftui

4
推荐指数
1
解决办法
1159
查看次数