Nice article, this will help a lot!
I made this because I was bored:
![]()
Nice article, this will help a lot!
I made this because I was bored:
![]()




Is it the same formula for a Quadratic Bezier?Originally Posted by DanielRehn
And, I'm assuming I use the bottom formula and implement the above formulas to replace tx1, tx2 etc. So, it would be:
angle = sqrt( (((p1x + ((p2x - p1x) * t)) - (p0x + ((p1x - p0x) * t))) pow 2) + (((p1y + ((p2y - p1y) * t)
) - (p0y + ((p1y - p0y) * t))) pow 2))
I'm also assuming that p1x, p2x etc etc mean X Position of P1, X Position of P2 and so on.
Am I right on this?
EDIT: And nice cover! :P
I probably qualify under dummy =D
First of all, as I stated 2 posts below my first one, I accidentally used the distance formula.. replace that with a formula to calc the angle and you should be fine..
also for Quadratic Bezier it's the blue line in the following image...
![]()
A Bezier Curve Extension
So you don't have to remember or implement the formula
It still does not support angles...

[size:17pt]New Example[/size]
&n bsp; Multiple Objects & nbsp; &nb sp;   ; & nbsp; &nb sp;   ; & nbsp; &nb sp;   ; & nbsp; &nb sp;
The attached example file shows how to use Object Selection to create many objects, all of whom have a separate Bézier curve.
The example is of three monsters whose heads swivel left to right, on segmented Bézier necks. Assuming you create the same number of neck segments and nodes for each monster, you can have as many copies as you like with no new events.
Note: Advanced. Not recommended for new users, relies heavily on MMF's object selection principles, specifically Many-to-Many relationships within MMF. A prior knowledge in this area is strongly recommended, although a separate frame is provided for you to experiment with the ID relationships in a Many-to-Many environment.
(the long words and jargon are to put the newbies off - trust me guys, if you're new to MMF, this will be beyond you)![]()
I think the main thing that will scare away new MMF2 users is the expression:
((X( "MBod" )+(X( "MBodDir" )-X( "MBod" ))*t( "MNeck" ))+((X( "MBodDir" )+(X( "MNeckDir" )-X( "MBodDir" ))*t( "MNeck" ))-(X( "MBod" )+(X( "MBodDir" )-X( "MBod" ))*t( "MNeck" )))*t( "MNeck" ))+(((X( "MBodDir" )+(X( "MNeckDir" )-X( "MBodDir" ))*t( "MNeck" ))+((X( "MNeckDir" )+(X( "MHead" )-X( "MNeckDir" ))*t( "MNeck" ))-(X( "MBodDir" )+(X( "MNeckDir" )-X( "MBodDir" ))*t( "MNeck" )))*t( "MNeck" ))-((X( "MBod" )+(X( "MBodDir" )-X( "MBod" ))*t( "MNeck" ))+((X( "MBodDir" )+(X( "MNeckDir" )-X( "MBodDir" ))*t( "MNeck" ))-(X( "MBod" )+(X( "MBodDir" )-X( "MBod" ))*t( "MNeck" )))*t( "MNeck" )))*t( "MNeck" )
While it is fairly simple in principle and concept, it can be intimidating if judged on looks alone.

Yeah, it's worse since I used E++ to write that, and I think E++ is generating pretty unoptimised expressions right now, lol
So it probably needs half as many brackets.