fireworks.frink

Download or view fireworks.frink in plain text format


class Fragment
{
   // Position
   var x
   var y
   var z

   // Velocity
   var vx
   var vy
   var vz

   // Physical properties (primarily to calculate drag)
   var radius
   var mass
   var Cd    // Drag coefficient
   var area  // Derived area from radius

   // Color
   var color

   // Boolean flag indicating if this is a shell that is going to explode
   var isShell

   // The lifetime of the fragment
   var lifetime

   // Constructor
   new[x, y, z, vx, vy, vz, radius, mass, Cd, color, isShell, lifetime] :=
   {
      this.x = x
      this.y = y
      this.z = z

      this.vx = vx
      this.vy = vy
      this.vz = vz

      this.radius = radius
      this.mass = mass
      this.Cd = Cd
      area = pi radius^2

      this.color = color

      this.lifetime = lifetime
   }

   // Update the position
   updatePosition[timestep, gravity, airDensity] :=
   {
      // Calculate square of velocity
      v2 = vx^2 + vy^2 + vz^2
      
   }
}

class FireworksShow
{
   var gravity
   var airDensity
   
   new[g=gravity, d=
}


Download or view fireworks.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 19945 days, 12 hours, 38 minutes ago.