我正在寻找使用触摸绘制贝塞尔曲线的示例代码,如果有人有链接或示例代码,请帮助我。我正在开发飞行控制游戏,我必须沿着用户用手指绘制的路径移动我的 ccsprite
编辑:感谢您的建议,现在我正在使用 CAShapeLayer 和 CAKeyframeAnimation 制作曲线。现在我需要删除曲线一个用户通过我们的它。就像在飞行控制应用程序中,如果 ccsprite 沿着路径移动,背面路径就这样被删除,谢谢非常
我正在寻找使用触摸绘制贝塞尔曲线的示例代码,如果有人有链接或示例代码,请帮助我。我正在开发飞行控制游戏,我必须沿着用户用手指绘制的路径移动我的 ccsprite
编辑:感谢您的建议,现在我正在使用 CAShapeLayer 和 CAKeyframeAnimation 制作曲线。现在我需要删除曲线一个用户通过我们的它。就像在飞行控制应用程序中,如果 ccsprite 沿着路径移动,背面路径就这样被删除,谢谢非常
使用两个端点和两个锚点绘制贝塞尔曲线。使用此信息绘制贝塞尔曲线非常容易。从手绘曲线中获取这些点称为矢量化(图像跟踪)。我是一个相当复杂的任务。
我认为使用这样的简单算法可以获得更好的结果:
编辑 :
我刚刚检查了飞行控制视频,我会这样做。一旦用户按下一个,它就会选择它。然后用户开始绘图,尽可能靠近用户手指绘制点(移动受平面转弯半径限制)。这将记录一系列步骤。每一步都由它的角度定义(我认为速度是恒定的),这个角度必须等于前一个 +/- 转动能力。
使用简单的三角函数来计算 x,y 坐标。
看看这个: 如何在鼠标上创建一个精灵点。XNA C#
你会在https://gamedev.stackexchange.com/上找到更好的帮助,确保有人准备好粘贴类似于你需要的代码。几年前我在 Amiga 上的 Amos 做过,但我无法将代码粘贴到这里,抱歉 :)
#include <math.h>
CGFloat radius = 100;
//CGFloat pi = 3.1415927; //comes for free in math.h
UIBezierPath *basecircle = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0,0,radius*2,radius*2)];
[[UIColor blackColor] set];
[basecircle fill];
这是绘制bezierPath的代码。你需要在drawRect方法中实现这个。希望能帮助到你。