Articles of beziers

沿着贝塞尔曲线旋转物体:不够旋转?

我试图按照论坛上的线程( Cocos2d旋转精灵,同时移动CCBezierBy )与Unity的指示,为了旋转我的对象,因为它沿着贝塞尔曲线移动。 但它不够旋转,角度太低,它会上升到6,而不是90,例如,你可以在这张图片上看到(yuulerAngle在6,我预计这个曲线在90左右): 编辑:这里是解决scheme: Vector3 v3 = newPos – oldPos; v3.y = 0.0f; transform.rotation = Quaternion.LookRotation(v3); 这里是代码(在Unity中的C#):(我比较x和z来获得角度,并添加到eulerAngles.y角度,使它围绕y轴旋转) void Update () { if ( Input.GetKey("d") ) start = true; if ( start ){ myTime = Time.time; start = false; } float theTime = (Time.time – myTime) *0.5f; if ( theTime < 1 ) { car.position […]

如何用Blinn / Loopalgorithm解决蛇形问题

我试图实现Blinn / Loopalgorithm来渲染着色器上的立方贝塞尔。 我使用下面的代码来计算曲线types(v0,v1,v2,v3是三次贝塞尔段): CurveType CurveRenderer::DetermineType (Point v0, Point v1, Point v2, Point v3, double& d0, double& d1, double& d2, double& d3) { CurveType curve_type; Eigen::MatrixXd M3(4,4); M3 << 1, 0, 0, 0, -3, 3, 0, 0, 3, -6, 3, 0, -1, 3, -3, 1; Eigen::MatrixXd B(4, 4); B << v0.x, v0.y, 0, 1, v1.x, […]

Cocos2d-x中的UIBezierPath相当于什么?

我是Cocos2d-x的初学者,我想用Cocos2d-x v.3 cpp来实现本教程 ,但问题是我不知道cocos2d-x中是否有UIBezierPath。 你能帮我画一下贝塞尔箭吗?

贝塞尔曲线中任意角度的一致法线

无法解决这个问题。 我有一个由贝塞尔曲线组成的样条曲线(在三维空间中) – 实际上,任何直线也会有这样的问题。 我在曲线上取一个点,需要在任何给定的角度0 – 360(比如围绕它建立一个网格或计算运动的偏移)得到这个点的法线。 我明白,在3D空间中,我们必须定义一个平面来建立正常的,通常使用Vector3.Cross(A,B); 一般来说,使用曲线的切线作为A,例如Vector3.up或右边的B. 但是,如果曲线变成垂直的(它可以沿任何方向走,想象任何与地面无关的轨迹,就像在空间中一样),它与Vector3.upalignment,并且法线的方向变得疯狂,交换方向等等,这很合乎逻辑。 更多的是,它不仅在直立的位置,而且在周围开始逐渐变化。 所以,问题是:如何使用任何给定的曲线点位置和角度来进行正常旋转,如何获得一致的(全部以同样正确的方向)法线? 更新: 最初的方法是这样的: public Vector3 GetTangent(…) { Vector3 q2 = CalculateTangent (…); Quaternion lookAt = Quaternion.LookRotation (q2); Vector3 normal = lookAt * Vector3.up; normal = Quaternion.AngleAxis (angle, q2) * normal; return point + normal * size; } 其中产生了以下法线(蓝色起来): 现在,如果我尝试使用以前的正常方向: Quaternion lookAt = Quaternion.LookRotation (q2, […]

触摸后如何使guibutton沿着path走?

我想在我的gui菜单中select一个button,如果我们select了它,我想知道我该怎么做:如果我们触摸button,那么它只能在特定的path上移动,它是一个弧这条路: 你会知道如何做到这一点? 我正在使用Unity,但是我认为其他软件/语言的理论应该是一样的。 谢谢你的帮助 __ 编辑: 这里是统一的贝塞尔曲线的代码:我应该在哪里放脚本? using UnityEngine; using System.Collections; public class DrawBezierHandle extends Editor { public Transform startT; public Transform endT; function Start(){ startT = GameObject.Find("start").GetComponent("Transform") as Transform; endT = GameObject.Find("end").GetComponent("Transform") as Transform; } function OnSceneGUI() { var width : float = HandleUtility.GetHandleSize(Vector3.zero) * 0.1; Handles.DrawBezier(startT.position, endT.position, startT.position * 5 * Vector.up, endT.position […]

如何根据玩家解决摄像机在贝塞尔曲线上的位置? (轨道上的相机)

我正在写一个游戏,我需要一个轨道上的摄像头; 也就是说,摄像机的path是固定的,并遵循贝塞尔曲线。 然而,我不能在网上find任何资源来解决最接近于另一个任意点的贝塞尔曲线上的最接近的点,尽管是应该是常见的东西。 一个非常好的游戏很好的例子是原始的Crash Bandicoot三部曲。 你是怎么做到的? 还是我解决了这个问题?

使用贝塞尔曲线实现正弦

我正在开发一个使用Cocos2d-x的2D游戏。 有可能使用CCBezierTo参数化正弦函数?

立方贝塞尔缓解?

我想知道Y是什么,如果X是一个三次贝塞尔曲线中的某个数字来做一个自定义缓动函数,就像在这个网站上做的那样: http : //cubic-bezier.com/ 有没有人知道一个公式或函数来findY如果X是立方贝塞尔的东西? (用C#/ XNA编码)

如何在追踪适当角度的同时实现弯曲运动?

我目前正在编写一个基于回合制的2D自上而下的汽车游戏。 而且由于是基于回合的,所以汽车将不会被直接控制(即用一个简单的速度vector来调整玩家想要转弯时的角度),而是预先计划好运动轨迹,然后汽车需要当转弯结束时沿着path走(想想Steambirds )。 这个问题有一些有趣的信息,但是它的重点是瞄准导弹的行为,但是我并没有真正的适用于我的情况,我想,因为我需要展示一下当玩家正在计划轮到他,然后让车子走上这条路。 在同样的问题中,安德鲁·罗素(Andrew Russel)提出了一个很好的答案,其中提到了运动方程和贝塞尔曲线。 他的一些其他的实现建议是特定于XNA,所以他们没有什么帮助(我正在使用Marmalade SDK )。 如果我假设Bézier的曲线是select的解决scheme,我只剩下一个具体的问题:我将拥有赛车的位置(第一个终点)和目标/终点位置(最后一个终点),但是我应该如何使用控制点(假设一个平方/二次曲线)? 无论是使用Bézier曲线还是其他参数方程,我仍然会遇到另一个问题:汽车不能只跟随曲线,它必须相应地转动(即调整其角度)。 那么怎样才能知道汽车在曲线的哪个点上应该指向哪个方向呢?

沿贝塞尔曲线均匀分布的点

我环顾四周,找不到解决这个问题的办法。 比方说,我有一个三次贝塞尔曲线(由4个点定义),我想要得到一组均匀分布在曲线上的点。 例如,考虑沿曲线放置文本。 现在的问题是,如果我inputt (从0-1插值)与一个固定的增量点不均匀分布。 沿曲线的距离在曲线转弯时较小,在曲线为直线时较长。 那么如何沿着贝塞尔曲线均匀地放置点?