Created
November 11, 2011 23:20
-
-
Save iTarum/1359646 to your computer and use it in GitHub Desktop.
Rings in rings ind rings
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SCHRIT_RADIUS = 1 | |
START_X = WIDTH/2 | |
START_Y = HEIGHT/2 | |
KVGR = 20 | |
KKGR = 20 | |
EKGR = 25 | |
AnzV = 40 | |
AnzK = 5 | |
AnzE = 50 | |
MIN_V_RADIUS = 100 | |
MAX_V_RADIUS = 200 | |
MIN_K_RADIUS = 50 | |
MAX_K_RADIUS = 100 | |
MIN_E_RADIUS = 25 | |
MAX_E_RADIUS = 50 | |
VATER_RAD_V = false | |
KIND_RAD_V = false | |
ENKEL_RAD_V = false | |
VATER_PULSIERUNGS_GR = 20 | |
KIND_PULSIERUNGS_GR = 2 | |
EPGR = 2 | |
VATER_DREH = 0.0125 | |
KIND_DREH = -0.025 | |
ENKEL_DREH = 0.05 | |
rV=1 | |
rK =3 | |
rE =5 | |
WeiterVNach =1 | |
WeiterKNach =2 | |
WeiterENach =0 | |
Dreh_Vater =0 | |
Dreh_Kind =0 | |
Dreh_Enkel =2 | |
sinX =0 | |
sinY =0 | |
SKx={} | |
SKgx={} | |
SKgy={} | |
SKy={} | |
dk=200 | |
-- Use this function to perform your initial setup | |
function setup() | |
iparameter("KVGR",10,1000) | |
iparameter("AnzV",1,20) | |
iparameter("AnzK",1,20) | |
iparameter("AnzE",1,20) | |
iparameter("dk",0,500) | |
iparameter("VATER_PULSIERUNGS_GR",0,200) | |
end | |
AnzV = 4 | |
AnzK = 2 | |
AnzE = 2 | |
-- This function gets called once every frame | |
function draw() | |
vStart() | |
KKGR = KVGR /2 | |
EKGR = KKGR /2 | |
KIND_PULSIERUNGS_GR = VATER_PULSIERUNGS_GR/3 | |
EPGR = KIND_PULSIERUNGS_GR/3 | |
noSmooth() | |
if dk>0 then | |
fill(0, 0, 0, dk) | |
rect(0,0,WIDTH,HEIGHT) | |
noStroke() | |
end | |
tmrTimer_Timer() | |
end | |
function tmrTimer_Timer() | |
i=0 | |
ii=0 | |
--fill(255,0,0) | |
stroke(11, 241, 170, 255) | |
if rV < MIN_V_RADIUS then WeiterVNach = 1 end | |
if rV > MAX_V_RADIUS then WeiterVNach = -1 end | |
if VATER_RAD_V then | |
rV = rV + (WeiterVNach * SCHRIT_RADIUS) | |
end | |
Dreh_Vater = Dreh_Vater + VATER_DREH | |
for i = 1 ,AnzV do | |
SKx[i]= sinX-(SKgx[i]/2)+(rV*math.sin(Dreh_Vater+(math.pi*i/AnzV*2))) | |
SKy[i]= sinY-(SKgy[i]/2)+(rV*math.cos(Dreh_Vater+(math.pi*i/AnzV*2))) | |
if VATER_RAD_V then | |
SKgx[i]= SKgx[i] + (WeiterVNach * VATER_PULSIERUNGS_GR) | |
SKgy[i]= SKgy[i] + (WeiterVNach * VATER_PULSIERUNGS_GR) | |
end | |
ellipse(SKx[i],SKy[i],SKgx[i],SKgy[i]) | |
end | |
if rK < MIN_K_RADIUS then WeiterKNach = 1 end | |
if rK > MAX_K_RADIUS then WeiterKNach = -1 end | |
if KIND_RAD_V then | |
rK = rK + (WeiterKNach * SCHRIT_RADIUS) | |
end | |
Dreh_Kind = Dreh_Kind + KIND_DREH | |
for ii = 1 ,AnzV do | |
TimerWeiter(ii) | |
end | |
if rE < MIN_E_RADIUS then WeiterENach = 1 end | |
if rE > MAX_E_RADIUS then WeiterENach = -1 end | |
if ENKEL_RAD_V then | |
rE = rE + (WeiterENach * SCHRIT_RADIUS) | |
end | |
Dreh_Enkel = Dreh_Enkel + ENKEL_DREH | |
for ii = (AnzV + 1 ), (AnzV * (AnzK + AnzV)) do | |
TimerNochWeiter(ii) | |
end | |
end | |
function TimerWeiter(VaterI) | |
kI =0 | |
i =0 | |
--fill(19, 255, 0, 255) | |
stroke(174, 255, 0, 255) | |
for i = 1 , AnzK do | |
kI = AnzV + ((VaterI - 1) * AnzK) + i | |
SKx[kI]=SKx[VaterI]+(SKgx[VaterI]/2)+(rK*math.sin(Dreh_Kind+(math.pi*i/AnzK*2))) - (SKgx[kI] / 1) | |
SKy[kI]=SKy[VaterI]+(SKgy[VaterI]/2)+(rK*math.cos(Dreh_Kind+(math.pi*i/AnzK*2))) - (SKgy[kI] / 1) | |
if KIND_RAD_V then | |
SKgx[kI]=SKgx[kI] + (WeiterKNach * KIND_PULSIERUNGS_GR) | |
SKgy[kI]=SKgy[kI] + (WeiterKNach * KIND_PULSIERUNGS_GR) | |
end | |
ellipse(SKx[kI],SKy[kI],SKgx[kI],SKgy[kI]) | |
end | |
end | |
function TimerNochWeiter(KI) | |
ENr=0 | |
i=0 | |
fill(217, 255, 0, 255) | |
for i = 1, AnzE do | |
ENr = AnzV + (AnzV * AnzK) + ((KI - 1) * AnzE) + i | |
SKx[ENr]=SKx[KI]+(SKgx[KI]/2)+(rE*math.sin(Dreh_Enkel+(math.pi*i/AnzE*2))) --(SKgy[ENr]/1) | |
SKy[ENr]=SKy[KI]+(SKgy[KI]/2)+(rE*math.cos(Dreh_Enkel+(math.pi*i/AnzE*2)))--(SKgy[ENr]/2) | |
-- print(SKx[ENr]) | |
if ENKEL_RAD_V then | |
SKgx[ENr]= SKgx[ENr] + (WeiterENach * EPGR) | |
SKgy[ENr]= SKgy[ENr] + (WeiterENach * EPGR) | |
end | |
--ellipse(SKx[ENr],SKy[ENr],SKgx[ENr],SKgy[ENr]) | |
ellipse(SKx[ENr],SKy[ENr],5,5) | |
end | |
end | |
function vStart() | |
ii=0 | |
sinX = START_X | |
sinY = START_Y | |
rV = MIN_V_RADIUS | |
WeiterVNach = 1 | |
for ii = 1 , AnzV do | |
--Load shpKreis(i) | |
SKgx[ii] = KVGR | |
SKgy[ii] = KVGR | |
SKx[ii] = sinX - (SKgx[ii] / 2) + (MIN_V_RADIUS * math.sin(math.pi * ii / AnzV * 2)) | |
SKy[ii] = sinY - (SKgy[ii] / 2) + (MIN_V_RADIUS * math.cos(math.pi * ii / AnzV * 2)) | |
end | |
if AnzK > 0 then | |
for ii = 1 , AnzV do | |
StartWeiter(ii) | |
end | |
if AnzE > 0 then | |
for ii = (AnzV + 1) , ((AnzV * AnzK) + AnzV) do | |
StartNochWeiter(ii) | |
end | |
end | |
end | |
end | |
function StartWeiter(VaterI) | |
kI=0 | |
i=0 | |
rK = MIN_K_RADIUS | |
WeiterKNach = 1 | |
for i = 1 , AnzK do | |
kI = AnzV + ((VaterI - 1) * AnzK) + i | |
--Load shpKreis(kI) | |
SKgx[kI] = KKGR | |
SKgy[kI] = KKGR | |
SKx[kI]=SKx[VaterI]+(SKgx[VaterI]/2) + (MIN_K_RADIUS * math.sin(math.pi * i / AnzK * 2)) | |
SKy[kI]=SKy[VaterI]+(SKgy[VaterI]/2) + (MIN_K_RADIUS * math.cos(math.pi * i / AnzK * 2)) | |
end | |
end | |
function StartNochWeiter(KindI) | |
ENr=0 | |
i=0 | |
rE = MIN_E_RADIUS | |
WeiterENach = 1 | |
for i = 1 , AnzE +3 do | |
ENr = AnzV + (AnzV * AnzK) + ((KindI - 1) * AnzE) + i | |
--Load shpKreis(EnkelNr) | |
SKgx[ENr] = KEGR | |
SKgy[ENr] = KEGR | |
SKx[ENr] = SKx[KindI]+(SKgx[KindI]/2)+(MIN_E_RADIUS*math.sin(math.pi*i/AnzE* 2)) | |
SKy[ENr] = SKy[KindI]+(SKgy[KindI]/2)+(MIN_E_RADIUS*math.cos(math.pi*i/AnzE* 2)) | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment