From: Peter S. <zu...@us...> - 2009-04-20 07:58:19
|
Update of /cvsroot/apophysis/2.10/Source In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv24689 Modified Files: varJuliaScope.pas Log Message: Index: varJuliaScope.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/varJuliaScope.pas,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** varJuliaScope.pas 28 Feb 2008 15:46:54 -0000 1.6 --- varJuliaScope.pas 20 Apr 2009 07:58:16 -0000 1.7 *************** *** 16,24 **** TVariationJuliaScope = class(TBaseVariation) private ! N: integer; ! c: double; rN: integer; ! cn: double; procedure CalcPower1; --- 16,24 ---- TVariationJuliaScope = class(TBaseVariation) private ! power: integer; ! distortion: double; rN: integer; ! invDistPower: double; procedure CalcPower1; *************** *** 55,66 **** constructor TVariationJuliaScope.Create; begin ! N := random(5) + 2; ! c := 1.0; end; procedure TVariationJuliaScope.Prepare; begin ! rN := abs(N); ! cn := c / N / 2; end; --- 55,66 ---- constructor TVariationJuliaScope.Create; begin ! power := random(5) + 2; ! distortion := 1.0; end; procedure TVariationJuliaScope.Prepare; begin ! rN := abs(power); ! invDistPower := distortion / power / 2; end; *************** *** 68,76 **** procedure TVariationJuliaScope.GetCalcFunction(var f: TCalcFunction); begin ! if c = 1 then begin ! if N = 2 then f := CalcPower2 ! else if N = -2 then f := CalcPowerMinus2 ! else if N = 1 then f := CalcPower1 ! else if N = -1 then f := CalcPowerMinus1 else f := CalcFunction; end --- 68,76 ---- procedure TVariationJuliaScope.GetCalcFunction(var f: TCalcFunction); begin ! if distortion = 1 then begin ! if power = 2 then f := CalcPower2 ! else if power = -2 then f := CalcPowerMinus2 ! else if power = 1 then f := CalcPower1 ! else if power = -1 then f := CalcPowerMinus1 else f := CalcFunction; end *************** *** 88,95 **** rnd := random(rN); if (rnd and 1) = 0 then ! sincos( (2*pi*rnd + arctan2(FTy^, FTx^)) / N, sina, cosa) else ! sincos( (2*pi*rnd - arctan2(FTy^, FTx^)) / N, sina, cosa); ! r := vvar * Math.Power(sqr(FTx^) + sqr(FTy^), cn); FPx^ := FPx^ + r * cosa; FPy^ := FPy^ + r * sina; --- 88,95 ---- rnd := random(rN); if (rnd and 1) = 0 then ! sincos( (2*pi*rnd + arctan2(FTy^, FTx^)) / power, sina, cosa) else ! sincos( (2*pi*rnd - arctan2(FTy^, FTx^)) / power, sina, cosa); ! r := vvar * Math.Power(sqr(FTx^) + sqr(FTy^), invDistPower); FPx^ := FPx^ + r * cosa; FPy^ := FPy^ + r * sina; *************** *** 98,102 **** mov edx, [eax + FTy] fld qword ptr [edx] ! fld qword ptr [eax + cn] mov edx, [eax + FTx] fld qword ptr [edx] --- 98,102 ---- mov edx, [eax + FTy] fld qword ptr [edx] ! fld qword ptr [eax + invDistPower] mov edx, [eax + FTx] fld qword ptr [edx] *************** *** 119,123 **** add esp, 4 faddp ! fidiv dword ptr [ecx + N] fxch st(3) --- 119,123 ---- add esp, 4 faddp ! fidiv dword ptr [ecx + power] fxch st(3) *************** *** 385,395 **** Result := False; if Name = var_n_name then begin ! N := Round(Value); ! if N = 0 then N := 1; ! Value := N; Result := True; end else if Name = var_c_name then begin ! c := value; Result := True; end; --- 385,395 ---- Result := False; if Name = var_n_name then begin ! power := Round(Value); ! if power = 0 then power := 1; ! Value := power; Result := True; end else if Name = var_c_name then begin ! distortion := value; Result := True; end; *************** *** 400,409 **** Result := False; if Name = var_n_name then begin ! if N = 2 then N := -2 ! else N := 2; Result := True; end else if Name = var_c_name then begin ! c := 1; Result := True; end; --- 400,409 ---- Result := False; if Name = var_n_name then begin ! if power = 2 then power := -2 ! else power := 2; Result := True; end else if Name = var_c_name then begin ! distortion := 1; Result := True; end; *************** *** 421,429 **** Result := False; if Name = var_n_name then begin ! Value := N; Result := true; end else if Name = var_c_name then begin ! Value := c; Result := true; end; --- 421,429 ---- Result := False; if Name = var_n_name then begin ! Value := power; Result := true; end else if Name = var_c_name then begin ! Value := distortion; Result := true; end; |