Exemplo n.º 1
0
void Normal_Calc_Julia(VECTOR Result, int N_Max, FRACTAL *)
{
  DBL
  n11 = 1.0, n12 = 0.0, n13 = 0.0, n14 = 0.0,
  n21 = 0.0, n22 = 1.0, n23 = 0.0, n24 = 0.0,
  n31 = 0.0, n32 = 0.0, n33 = 1.0, n34 = 0.0;
  DBL tmp;
  DBL x, y, z, w;
  int i;

  x = Sx[0];
  y = Sy[0];
  z = Sz[0];
  w = Sw[0];

  for (i = 1; i <= N_Max; i++)
  {
    Deriv_z2(n11, n12, n13, n14);
    Deriv_z2(n21, n22, n23, n24);
    Deriv_z2(n31, n32, n33, n34);

    x = Sx[i];
    y = Sy[i];
    z = Sz[i];
    w = Sw[i];
  }

  Result[X] = n11 * x + n12 * y + n13 * z + n14 * w;
  Result[Y] = n21 * x + n22 * y + n23 * z + n24 * w;
  Result[Z] = n31 * x + n32 * y + n33 * z + n34 * w;
}
Exemplo n.º 2
0
void JuliaFractalRules::CalcNormal(Vector3d& Result, int N_Max, const Fractal *, DBL **IterStack) const
{
    DBL
    n11 = 1.0, n12 = 0.0, n13 = 0.0, n14 = 0.0,
    n21 = 0.0, n22 = 1.0, n23 = 0.0, n24 = 0.0,
    n31 = 0.0, n32 = 0.0, n33 = 1.0, n34 = 0.0;
    DBL tmp;
    DBL x, y, z, w;
    int i;

    x = IterStack[X][0];
    y = IterStack[Y][0];
    z = IterStack[Z][0];
    w = IterStack[W][0];

    for (i = 1; i <= N_Max; i++)
    {
        Deriv_z2(n11, n12, n13, n14);
        Deriv_z2(n21, n22, n23, n24);
        Deriv_z2(n31, n32, n33, n34);

        x = IterStack[X][i];
        y = IterStack[Y][i];
        z = IterStack[Z][i];
        w = IterStack[W][i];
    }

    Result[X] = n11 * x + n12 * y + n13 * z + n14 * w;
    Result[Y] = n21 * x + n22 * y + n23 * z + n24 * w;
    Result[Z] = n31 * x + n32 * y + n33 * z + n34 * w;
}