Whoa, Math is cool.

PurgeandFire

zxcvmkgdfg
Reaction score
509
Trigger:
  • Special Effect - Create a special effect at (Origin offset by 500.00 towards ((Real((Integer A))) x (360.00 / NumberOfSFX)) degrees) using Abilities\Weapons\PhoenixMissile\Phoenix_Missile.mdl


The offset by "500.00" part. 500 is the radius.
 

Zanderist

New Member
Reaction score
5
How would you introduce a 'Z' offset? (height off the ground)

Also, how do you make a 'Rose' shape?
 

Rushhour

New Member
Reaction score
46
I have something similiar, random 'circle' effects . Looks awesome with this model, but others too :-D

attached.
 

uberfoop

~=Admiral Stukov=~
Reaction score
177
What is that pattern anyway? Randomness?
As he says later in the thread, it's actually a spiral.

These formulas that everyone is posting are far less mysterious than they may seem. They can often be analyzed and parametrized as simple functions.

In the case of the spiral formula posted at the top of the thread:


x and y are both always equal, so we can relable both of them as 't' and get away with it. You'll note, then, that the formula reads z=t*t+t*t, which is the same as z=2t^2. It then sets z to z*z, yielding z=4t^4. x, also known as t, is then projected out at angle z, also known as 4t^4. Thus at any given point along the curve being generated, we project r=t out at angle T (Big T for Theta) where T=4*t^4. Solving for t, we get t=(T/4)^(1/4). We can then substitute r for little t, since r=t, yielding a polar equation:
r(T)=(T/4)^(1/4), where T is measured in degrees. If T is in radians, we can multiply all T's on the right-hand side by the equivalence factor 180/pi to get a more natural formula where we have a polar curve r(T) where T is in radians:
r(T)=(45T/pi)^(1/4)

So no, the pattern is not randomness. It just so happens that the formula traces out along a whacky spiral curve. The reason it's hard to see is because of how t so rapidly; T in terms of t is 4t^4, so even from the 5th to the 6th run of the timer you have an angle jump of 2684 degrees. If you decrease the timer period, lower the incriments of x and y to small decimals, and multiply the x in the polar projection formula to make it substantial, this spiral becomes more visible.

edit:
Also, how do you make a 'Rose' shape?
It seems like, since you are making so many radial shapes, you want to keep track of an angle and project a distance from it based on that angle.

The basic 'rose' shapes are constructed by doing things like r(angle)=Sin([some integer multiplier]*angle) ie r(angle)=Sin(3*Angle).
Cosine works as well.
The mechanics basically work where, over a full 360 degrees, if you used cosine the shape will be traced twice, if you used sine then the shape will be traced out once but you'll have 2*[integer multiplier] petals on your rose.




What rushhour posted, by the way, seems to be a pretty basic but nonetheless neato cycloidy thing.
 

Zanderist

New Member
Reaction score
5
I have my pre-calculus for dummies book out

And the formula to make a rose shape is as follows:

r=a*sin*b(theta)

A is the size

B is the number of petals in each quad.

Theta is the number that is changing.

If it's cos, it's symmetrical on the x or y axis depending on the number of petals you use.

I tried this,
Trigger:
  • Speical Effect
    • Events
      • Player - Player 1 (Red) types a chat message containing Start as An exact match
    • Conditions
    • Actions
      • Set x = 15.00
      • For each (Integer A) from 1 to 30, do (Actions)
        • Loop - Actions
          • Wait 1.00 seconds
          • Set y = (y + 32.00)
          • Set r = ((Sin(y)) x 3.00)
          • Set center_point = ((Center of (Playable map area)) offset by r towards ((Real((Integer A))) x (360.00 / x)) degrees)
          • Special Effect - Create a special effect at center_point using Doodads\Cityscape\Props\MagicRunes\MagicRunes0.mdl
          • Set SpeicalEffectInteger = (SpeicalEffectInteger + 1)
          • Set SpeicalEffect[SpeicalEffectInteger] = (Last created special effect)


but I keep ending up with a tightly packed circle.
 

Cookiemaster

New Member
Reaction score
36
I have my pre-calculus for dummies book out

And the formula to make a rose shape is as follows:



A is the size

B is the number of petals in each quad.

Theta is the number that is changing.

If it's cos, it's symmetrical on the x or y axis depending on the number of petals you use.

I tried this,
Trigger:
  • Speical Effect
    • Events
      • Player - Player 1 (Red) types a chat message containing Start as An exact match
    • Conditions
    • Actions
      • Set x = 15.00
      • For each (Integer A) from 1 to 30, do (Actions)
        • Loop - Actions
          • Wait 1.00 seconds
          • Set y = (y + 32.00)
          • Set r = ((Sin(y)) x 3.00)
          • Set center_point = ((Center of (Playable map area)) offset by r towards ((Real((Integer A))) x (360.00 / x)) degrees)
          • Special Effect - Create a special effect at center_point using Doodads\Cityscape\Props\MagicRunes\MagicRunes0.mdl
          • Set SpeicalEffectInteger = (SpeicalEffectInteger + 1)
          • Set SpeicalEffect[SpeicalEffectInteger] = (Last created special effect)


but I keep ending up with a tightly packed circle.

You create the effects at center_point, which is "r" distance away to <all kinds of angles>. "r" is equal to ((Sin(y)) x 3.00). Sine, just like cosine, returns a value between -1 and 1. So the range of of which the distances are from the center_point would be between -3 and 3.

And seeing how one square is 128 wide... That's hardly anything.

Try setting r to ( ((Sin(y)) x 50) + 350), the value range should be between 300 and 400 then.

also, why the wait in the integer a loop? you're ruining everything forever with it ;-;
 

Zanderist

New Member
Reaction score
5
You create the effects at center_point, which is "r" distance away to <all kinds of angles>. "r" is equal to ((Sin(y)) x 3.00). Sine, just like cosine, returns a value between -1 and 1. So the range of of which the distances are from the center_point would be between -3 and 3.

And seeing how one square is 128 wide... That's hardly anything.

Try setting r to ( ((Sin(y)) x 50) + 350), the value range should be between 300 and 400 then.

also, why the wait in the integer a loop? you're ruining everything forever with it ;-;

The wait in the loop makes it spawn one at a time.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top