|
|
Hello!
How can I morph an object from one object to another during an animation?
I use the clock-value and would like a sphere changing during its flight
from a sphere to a cube.
I use the following code from this forum which
changes the color of Obj during the flight from color c1 to c2.
#macro ObjSpline1(Obj,Size,c1,c2,Spline)
// Leads an Object Obj of a Size over a Spline
// and changes its color from c1 to c2.
#declare index = 0;
//#while (index < 100)
#declare Value = clock / 99; // or you can use: 100/99;
clock/99; index/99;
object {
Obj
scale Size
translate Spline(Value)
pigment { rgb (c1*(1-Value) + c2*(Value)) }
}
// #declare index = index + 1;
//#end // end of while
#end // end of macro
How can I add the feature to have Obj1 and Obj2 and change from the first to
the second?
Thanks!
Greetings,
Chrisir
Context:
// ----------------------------------------
// macros
#macro MSpline(P1,P2,M1,M2,M3)
spline {
cubic_spline
-1,M1
0,P1
0.5,M2
1,P2
2,M3
}
#end // end of macro
#macro ObjSpline1_Test(Obj,Size,c1,c2,Spline)
// TESTING
// Leads an Object Obj of a Size over a Spline
// and changes its color from c1 to c2.
#declare index = 0;
#while (index < 100)
#declare Value = index / 99; // or you can use: 100/99;
clock/99; index/99;
object {
Obj
scale Size
translate Spline(Value)
pigment { rgb (c1*(1-Value) + c2*(Value)) }
}
#declare index = index + 1;
#end // end of while
#end // end of macro
#macro ObjSpline1(Obj,Size,c1,c2,Spline)
// Leads an Object Obj of a Size over a Spline
// and changes its color from c1 to c2.
#declare index = 0;
//#while (index < 100)
#declare Value = clock / 99; // or you can use: 100/99;
clock/99; index/99;
object {
Obj
scale Size
translate Spline(Value)
pigment { rgb (c1*(1-Value) + c2*(Value)) }
}
// #declare index = index + 1;
//#end // end of while
#end // end of macro
#macro MyLine1(P1,c1,P2,c2,M1,M2,M3)
// Connects two points P1 and P2 with a spline
// which is modified ("M") by the points M1, M2
// and M3.
// Point P1 has the color c1, Point P2 has the color c2.
#local MSplineMy = MSpline( P1,P2,M1,M2,M3 );
ObjSpline1( sphere{0,1}, 0.5, (c1*(1/255)), (c2*(1/255)), MSpline(
P1,P2,M1,M2,M3 ) )
// sphere { P2, .5 pigment { rgb (c2*(1/255)) } }
// sphere { P1, .5 pigment { rgb c1 } }
#end // end of macro
// ----------------------------------------
// calling of macro
MyLine1 ( <4,96,90>,<255,0,0>,<0,100,90>,<52,38,35>,
<72.5793946507462,57.3587176873891,45.6400501916966>,<7.48227266731511,71.6078999202244,47.1569606753151>,<42.926831759
8488,57.2162114660836,52.5076042410804>)
// 4
Post a reply to this message
|
|