Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm developing a 2D game using Cocos2d-x. Is possible to use CCBezierTo to parameterize a sine function?

share|improve this question
    
I guess you're talking about a sine function? What do you mean when you say use a bezier curve to parametrize a sine function? What are you trying to achieve? –  bummzack Jul 13 '12 at 7:36
    
Make a semi-period, concave or convex. My idea is create a sine, with use function sin, just using curves chained. –  Piperoman Jul 13 '12 at 7:38
    
So in the end you want a bezier curve, that matches a sine curve? So that you can use it with CCBezierTo. Is that right? –  bummzack Jul 13 '12 at 7:41
    
Yes, it is right. I must not be exactly a sine, because i'm interesting in create a method to make trajectories beautiful. My random experiments with bezier are horrible. Learning to make a sine, it would help me to create more things. –  Piperoman Jul 13 '12 at 7:44
1  
Theoretically, writing a the sin function in terms of polynomials (especially finite series) is mathematically impossible since the basis (be it Bernstein polynomials or your 1,x,,x^2,etc.. canonical one) is finite and cannot reproduce the taylor series of the sine function. You may find it faster to just use a truncated Taylor expansion of the sine. But if you aim to "draw" something, you can for sure mimic the images of some simple non-linear functions. (I wrote this comment just for the mathematical caveat.. no trolling intended :D). –  teodron Jul 13 '12 at 8:28
show 1 more comment

2 Answers

up vote 2 down vote accepted

Just use Bezier, giving 3 points in concave section, and another 3 in convex section, its easier than give all points to do a perfect sine, and the trajectory is the same.

share|improve this answer
add comment

You could create a Bézier curve that matches a sine (read this article for an example). Creating a Bézier curve from a sine, just to feed into CCBezierTo seems like a very counter-intuitive way of doing things though.

I would skip CCBezierTo entirely and update the position of your sprite yourself. You could do so in your update method or implement a CCAction yourself. The easiest form of movement would be to increase x constantly (or with a decaying value to simulate some sort of drag) and use the sine function to calculate y.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.