Hope you find this useful.
j
/* PlotIt!
2009Nov11 JRM (Debug Tool) Plot Particle
disguised as a neat little particle
(w/ Flowfields help)
*/
Aspc="1"
ConB=1
Stps="1000" // Keep this jacked up HIGH (for reasonable vertical strokes)
A0="PI * 2"
A1="4"
A2=".15"
A3="A2 * 2"
/**** >>> (RE)READ and UNDERSTAND before proceeding <<< ****/
B0="t" // Set to ZERO for Sationary
C0="(((2 * s) -1) *A0)" // ( -2*PI -> 2*PI ) per FRAME
C1="(C0 * A1) + B0" // Scaled for display (aka, MY 'C1')
/*
> I won't try explaining the value of this, but IF you design
> configs with control functions, come back and take another look... THEN it will
> all be clear... maybe. Of course, your situation might require you to modify YOUR
> equation (that you wish to visualize) to be a function of 's' rather than 't'.
> 't' HERE, only marches the wave(s) along the x axis. Turning off Waveshapes and
> Flowfields 'may' be in order... This ONLY runs as a Particle!!
*/
X0="C1"
Y0="0"
X1="0"
Y1="(2 * s) -1"
//////////////////////////
// Equations to be plotted...
C2="max( sign(sin(C1)), 0)" // Control Functions (0, 2PI)
C3="max( sign(cos(C1)), 0)" // Control Functions (0, 2PI)
// C4="C2 * max( cos(C1), 0)" // Control Functions (0, 2PI)
// C5="C3 * max( sin(C1), 0)" // Control Functions (0, 2PI)
C4="max(0, cos(C1)) * sign(cos( C1/2 ))"
C5="max(sign(((float)(C4 == 0)) - 1), sin(C1)) * sign(sin(((2 * C1)+ PI)/4))"
//////////////////////////
X2="C0"
Y2="(A3 * 2) + (A2 * C2)" // Top
X3="C0"
Y3="(A3 * 1) + (A2 * C3)"
X4="C0"
C6="(C0 * A1) -t"
Y4="(A3 * -.25) + (A2 * trwv(C6))" // Middle (Reference)
X5="C0"
Y5="(A3 * -1) + (A2 * flip(C1))"
X6="C0"
Y6="(A3 * -2) + (A2 * C5)" // Bottom
LWdt="1"
Meta="reactive=1"
Vers=391
Config Developer's Tool
Moderators: BTT, andy55, b.dwall, juxtiphi
- JayPro
- Posts: 738
- Joined: Sat May 01, 2004 10:51 pm
- Location: Huntington Station, Long Island, New York
You have to add the following parameters to Meta:
detail=x, density=x, (morphable=x) //assuming x=a number preferably from 3 to 5
Morphable is parenthesized if you want the particle to be included in the WaveShape slideshow, which I assume here you don't.
Edit: I would use sine in Y5 only because flip makes right angles on the third horizontal plane (my personal 2¢ of course). Also it would be cool to vary functions in C2 & c3.
How about?:
C2="max(trwv(sin(C1)), 0)" // Control Functions (0, 2PI)
C3="max(wrap(cos(C1)), 0)" // Control Functions (0, 2PI)
detail=x, density=x, (morphable=x) //assuming x=a number preferably from 3 to 5
Morphable is parenthesized if you want the particle to be included in the WaveShape slideshow, which I assume here you don't.
Edit: I would use sine in Y5 only because flip makes right angles on the third horizontal plane (my personal 2¢ of course). Also it would be cool to vary functions in C2 & c3.
How about?:
C2="max(trwv(sin(C1)), 0)" // Control Functions (0, 2PI)
C3="max(wrap(cos(C1)), 0)" // Control Functions (0, 2PI)
"God is syntax."
good suggestions... that is why I wrote this ... to help me visualize what might not be immediately apparent. The actual equations YOU choose to plot are rather incidental(to me anyway), unless YOU are after some specific result. The (commented out) equations I left in the code were meant to be examples of things that I tried ... and might have worked or failed. It is meant to be a crutch
.
Thanks,
j
Thanks,
j
okay you technical wizards ...
I just got done spending a lot of time trying to figure out how, when writing 'multi-thread instance' Configs (i.e., NUM > 1), for each instance to maintain its own level of 'randomability'. Amazingly, almost NO existing configs address this issue. The problem is that A variables are ONLY set/evaluated ONCE, and inherited by each instance. For example,
A0="rnd(5)", each instance would inherit the same random VALUE... and NO, A0="rnd(5 + ID)" doesn't seem to work either (but it was a good guess!). hmmm, so how can we get this to work???
B0="rnd(5)" will have B0 bouncing around each time it is evaluated... NOT what I WANT... I WANT instance(A) to run with a set of random initialization variables... and instance(B...) to do the same. Therefore as we set up each frame, of each instance, we need to have those random initialization parameters remain intact (or more correctly, recreatable) for the duration of each instances' run.... did that make any sense???
When I tell you my (the?) answer, you are going to say, well SURE, I KNEW THAT ... well then you are a lot sharper than ME.
ANSWER:
B0="srand(ID)"
B1=".6 + rnd(.3)"
'srand()' returns the SEED so you don't necessarily have to waste a 'B' variable. As far as I can tell, ID is the only static differentiating SEED that can be used between instances (really it just needs to be part of some function that always evaluates to the same value within the scope of each individual instance). If ANYONE has another solution, PLEASE chime in ... BUT THIS DOES WORK ... and kinda makes sense, once you know the answer
A0="rnd(5)", each instance would inherit the same random VALUE... and NO, A0="rnd(5 + ID)" doesn't seem to work either (but it was a good guess!). hmmm, so how can we get this to work???
B0="rnd(5)" will have B0 bouncing around each time it is evaluated... NOT what I WANT... I WANT instance(A) to run with a set of random initialization variables... and instance(B...) to do the same. Therefore as we set up each frame, of each instance, we need to have those random initialization parameters remain intact (or more correctly, recreatable) for the duration of each instances' run.... did that make any sense???
When I tell you my (the?) answer, you are going to say, well SURE, I KNEW THAT ... well then you are a lot sharper than ME.
ANSWER:
B0="srand(ID)"
B1=".6 + rnd(.3)"
'srand()' returns the SEED so you don't necessarily have to waste a 'B' variable. As far as I can tell, ID is the only static differentiating SEED that can be used between instances (really it just needs to be part of some function that always evaluates to the same value within the scope of each individual instance). If ANYONE has another solution, PLEASE chime in ... BUT THIS DOES WORK ... and kinda makes sense, once you know the answer