new variations
This commit is contained in:
parent
22a79569e1
commit
7d381cf6dc
@ -4,9 +4,9 @@ interface
|
|||||||
|
|
||||||
const
|
const
|
||||||
{$IFDEF TESTVARIANT}
|
{$IFDEF TESTVARIANT}
|
||||||
NVARS = 26;
|
NVARS = 27;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
NVARS = 25;
|
NVARS = 26;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
varnames: array[0..NVARS -1] of PChar = (
|
varnames: array[0..NVARS -1] of PChar = (
|
||||||
@ -34,7 +34,8 @@ const
|
|||||||
'rings',
|
'rings',
|
||||||
'fan',
|
'fan',
|
||||||
'triblob',
|
'triblob',
|
||||||
'daisy'
|
'daisy',
|
||||||
|
'checkers'
|
||||||
{$IFDEF TESTVARIANT}
|
{$IFDEF TESTVARIANT}
|
||||||
,'test'
|
,'test'
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -97,6 +98,7 @@ type
|
|||||||
procedure Fan; // var[22]
|
procedure Fan; // var[22]
|
||||||
procedure Triblob; // var[23]
|
procedure Triblob; // var[23]
|
||||||
procedure Daisy; // var[24]
|
procedure Daisy; // var[24]
|
||||||
|
procedure Checkers; // var[25]
|
||||||
procedure TestVar; // var[NVARS - 1]
|
procedure TestVar; // var[NVARS - 1]
|
||||||
|
|
||||||
function Mul33(const M1, M2: TMatrix): TMatrix;
|
function Mul33(const M1, M2: TMatrix): TMatrix;
|
||||||
@ -298,6 +300,11 @@ begin
|
|||||||
Inc(FNrFunctions);
|
Inc(FNrFunctions);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
if (vars[25] <> 0.0) then begin
|
||||||
|
FFunctionList[FNrFunctions] := Checkers;
|
||||||
|
Inc(FNrFunctions);
|
||||||
|
end;
|
||||||
|
|
||||||
{$IFDEF TESTVARIANT}
|
{$IFDEF TESTVARIANT}
|
||||||
if (vars[NVARS -1] <> 0.0) then begin
|
if (vars[NVARS -1] <> 0.0) then begin
|
||||||
FFunctionList[FNrFunctions] := TestVar;
|
FFunctionList[FNrFunctions] := TestVar;
|
||||||
@ -633,17 +640,31 @@ begin
|
|||||||
Angle := 0.0;
|
Angle := 0.0;
|
||||||
|
|
||||||
// r := r * (0.6 + 0.4 * sin(3 * Angle));
|
// r := r * (0.6 + 0.4 * sin(3 * Angle));
|
||||||
r := r * sin(5 * Angle);
|
r := r * ( 1 - Sqr(sin(5 * Angle)));
|
||||||
|
|
||||||
FPx := FPx + vars[24] * r * cos(Angle);
|
FPx := FPx + vars[24] * r * cos(Angle);
|
||||||
FPy := FPy + vars[24] * r * sin(Angle);
|
FPy := FPy + vars[24] * r * sin(Angle);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
procedure TXForm.Checkers;
|
||||||
|
var
|
||||||
|
dx: double;
|
||||||
|
begin
|
||||||
|
if odd(Round(FTX * 5) + Round(FTY * 5)) then
|
||||||
|
dx := 0.2
|
||||||
|
else
|
||||||
|
dx := 0;
|
||||||
|
|
||||||
|
FPx := FPx + vars[25] * FTx + dx;
|
||||||
|
FPy := FPy + vars[25] * FTy;
|
||||||
|
end;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
procedure TXForm.TestVar;
|
procedure TXForm.TestVar;
|
||||||
var
|
var
|
||||||
r : double;
|
r : double;
|
||||||
// dx, dy, dx2: double;
|
dx, dy, dx2: double;
|
||||||
Angle: double;
|
Angle: double;
|
||||||
begin
|
begin
|
||||||
r := sqrt(FTx * FTx + FTy * FTy);
|
r := sqrt(FTx * FTx + FTy * FTy);
|
||||||
@ -652,11 +673,10 @@ begin
|
|||||||
else
|
else
|
||||||
Angle := 0.0;
|
Angle := 0.0;
|
||||||
|
|
||||||
// r := r * (0.6 + 0.4 * sin(3 * Angle));
|
r:= R - 0.04 * sin(6.2 * R - 1) - 0.008 * R;
|
||||||
r := r * sin(5 * Angle);
|
|
||||||
|
|
||||||
FPx := FPx + vars[NVARS-1] * r * cos(Angle);
|
FPx := FPx + vars[NVars - 1] * r * cos(Angle);
|
||||||
FPy := FPy + vars[NVARS-1] * r * sin(Angle);
|
FPy := FPy + vars[NVars - 1] * r * sin(Angle);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
Reference in New Issue
Block a user