如何细分UIBezierPath并将其存储在两个不同的对象中

2023-12-28

我的应用程序中有 UIBezierPath。当识别到路径上的手指触摸时,我想细分该曲线并将这两条曲线存储到两个不同的对象中。因此,触摸坐标将作为一条曲线的终点和第二条曲线的起点。

同样,如果我触摸这条曲线中的任何一条,该曲线将细分为另外两条曲线,依此类推。

我找了很多这个。但找不到什么好的解决办法。

我也不知道是否还有其他方法可以做到这一点。任何帮助将不胜感激。 谢谢


您可以使用德卡斯特里奥算法。如果你真的很喜欢数学在这里查看维基百科页面 http://en.wikipedia.org/wiki/De_Casteljau%27s_algorithm,但如果你对数学不太感兴趣,它可能会让你更加困惑,因为它实际上很简单......

  1. 计算沿触摸曲线(0.0 到 1.0 之间)的参数化值。为此,您可以定期计算一组点(0.1、0.2、0.3 等),然后找到距离触摸点最近的两个点,如果您想要更高的精度(0.21、0.22、 0.23 等)。这将导致沿着代表您触摸位置的曲线段出现一个介于 0.0 和 1.0 之间的数字。
  2. This bit is difficult to explain in text, but there's a good visualization on this page http://www.caffeineowl.com/graphics/2d/vectorial/bezierintro.html about half-way down under the heading Subdividing a Bezier curve. Use the slider under the diagram to see how it works, here's my textual explanation: You need to subdivide the straight lines between the control points of your curve segment proportional to the parameterized value you calculated in step 1. So if you calculated 0.4, you have four points (A, B, C, D) plus the split-point on the curve closest to your touch at 0.4 along the curve, we'll call this split-point point S:
    • 计算沿 B→C 线的临时点 T 为 0.4
    • 令A1点等于A点
    • 计算沿A→B线0.4的点B1
    • 计算沿 B1→T 线 0.4 的点 C1
    • 令D1点等于分割点S
    • 令 D2 点等于 D 点
    • 计算点C2,沿C→D线为0.4
    • 计算沿线 T→C2 的 B2 为 0.4
    • 令A2点等于分割点S

现在您有两条新的贝塞尔曲线,第一条使用控制点 A1、B1、C1、D1,第二条使用 A2、B2、C2、D2。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何细分UIBezierPath并将其存储在两个不同的对象中 的相关文章

  • ABPeoplePickerNavigationController - 在不使用私有方法/属性的情况下删除“取消”按钮?

    我正在使用 ABPeoplePickerNavigationController 它是 UINavigationController 的子类 在我使用它的上下文中 右侧的默认导航栏按钮 取消 没有任何意义 我找不到禁用或隐藏它的方法 并且无
  • iPhone 应用程序在 iOS 4 上安装后无法启动,但设备重启后可以运行

    我有一个在 iOS 3 0 3 1 3 上运行良好的应用程序 然而 在测试 iOS 4 SDK 特别构建时 该应用程序的行为很奇怪 安装后 使用 Xcode iTunes 或 iPhone 配置实用程序 应用程序会执行以下两项操作之一 应用
  • 如何呈现半屏模态视图?

    我有一个 UIViewController 当按下按钮时 我想要一个半屏视图向上滑动 其中有一个 UIPicker 我在 IB 中使用 UIPicker 和带有 完成 取消 按钮的 UIToolBar 制作了一个 UIView 我怎样才能做
  • 应用内购买:卡在 paymentWithProductIdentifiers - 已弃用

    我一直在设置应用内购买 我无法做到这一点 SKPayment paymentRequest SKPayment paymentWithProduct co za nideo 100shotsbuybeer 我从 SKPayment paym
  • iPhone - 如何通过基于度数的位置获取方向

    首先 我在班级中实现了位置管理器功能 并且运行良好 并为我提供了当前位置 从那个位置我得到了如何获得位置度here http www switchonthecode com tutorials getting your location i
  • 以编程方式单击 tabbarController 的选项卡

    我有 2 个带有 Nib 文件的选项卡按钮 在按下选项卡 1 上的按钮时 我希望它显示选项卡 2 的视图 而不是单击选项卡栏按钮 2 我的意思是 我想以编程方式单击第二个选项卡栏按钮 我怎样才能做到这一点 可能吗 您必须创建一个包含以下内容
  • MPMediaItemPropertyAssetURL 仅针对 iPhone 5s 返回 null

    我一直在使用以下代码从 MPMediaItemPickerController 返回的 MPMediaItem 对象中提取资产 url 以便我可以将音乐文件从用户 iPhone itunes 音乐库复制到文档文件夹进行处理 但在 iPhon
  • 如何检查 iOS 分发配置文件是否启用了推送通知?

    我有一个应用程序应该启用推送通知 但由于某种原因没有启用它们 我见过其他人下载并安装了该应用程序 但它甚至没有提示他们授予发送推送通知的权限 正如预期的那样 此应用程序不会出现在其 设置 gt 通知 中 但是 在我的 iPad 上 我能够从
  • 如何通过填充 NSDictionary 以 JSON 格式发送 UIImage

    我正在尝试使用 JSON 将数据发送到服务器 我可以使用我的对象和关键参数创建 NSDictionary 但我想发送我的图片 图片是UIImage NSDictionary mainJSON NSDictionary dictionaryW
  • 在 iOS 中擦除绘图

    我正在开发一个绘图应用程序 我有一个UIBezierPath 我用它在touchesMoved中绘制 并将其转换为CGPath 然后在tCGplayer上绘制 这是我的代码 void touchesMoved NSSet touches w
  • 在iPhone上将CSV文件读入sqlite3

    有没有办法在iPhone上将CSV文件读入sqlite3 sqlite3 是否有类似于 SQL 命令的功能 LOAD DATA LOCAL INFILE file csv INTO TABLE TABLENAME FIELDS TERMIN
  • 在完成块中保留循环

    在我的课堂上 我创建了这个方法 void refreshDatasourceWithSuccess CreateDataSourceSuccessBlock successBlock failure CreateDataSourceFail
  • 在 iOS 中从 ACAccountStore 获取 Facebook uid?

    您好 我想获取 Facebook 用户的 UIDAC帐户商店在 iOS 6 中 self accountStore ACAccountStore alloc init ACAccountType FBaccountType self acc
  • 无法从 iOS 中的框架访问 .nib(XIB) 文件

    我已经从现有的代码库中创建了一个框架 并尝试在新的代码库中使用它 这很好用 但是当我尝试访问属于我的框架包的一部分的 nib 文件时 我的应用程序崩溃了 这是我用来访问视图控制器 XIB 文件的代码 testViewController c
  • 将静态库合并为单个

    如何将静态库合并为一个 我确实有三个静态库 libSignatureLibary armv6 a libSignatureLibary armv7 a 和 libSignatureLibary i368 a 现在我想将这三个文件合并到一个库
  • Objective-C UILabel 作为超链接

    我正在尝试做一个UILabel一个链接UIWebView 我怎样才能做一个UILabel作为超链接 您可以使用 UITapGestureRecognizer 它将实现与您想要的类似的功能 UILabel myLabel UILabel al
  • iPhone - UIImage imageWithData 返回 nil

    我需要从字节数组创建 UIImage 现在我创建了字节数组 image CGImageCreateWithImageInRect aux CGImage imageRect context CGBitmapContextCreate dat
  • 如何在 iPhone 上使用带有线程的 sqlite + fdbm 库

    相关这个问题 https stackoverflow com questions 1082554 我想把数据加载放在后台 但是 我收到 库例程调用不按顺序 错误 In 这个所以线程 https stackoverflow com quest
  • 贴纸包会在模拟器上使 iMessage 崩溃,但在 iPhone 上不会崩溃

    按照 Apple 的在线说明和视频在 Xcode 中创建了一个贴纸包 所有图像的尺寸均正确且远低于文件大小阈值 如果我在我的实体 iPhone 上构建并运行贴纸包 一切都会完美运行 如果我在模拟器上构建并运行贴纸包 对于任何模拟的 iPho
  • 如何在 UIScrollView 中启用缩放

    如何启用缩放功能UIScrollView 答案是here https developer apple com documentation uikit uiscrollview 滚动视图还可以处理内容的缩放和平移 当用户做出捏合或张开手势时

随机推荐