FM'e göster: ♡

3
auselen

Programcılar için ucuz sevgililer günü önerileri...

  • t = 0 → 2𝜋
  • x = 16 sin³ t
  • y = 13 cos t - 5 cos (2 t) - 2 cos (3 t) - cos (4 t)
LC_ALL=ISO-8859-1 awk 'BEGIN { \
  pi=atan2(0, -1); \
  for (t=0; t<(pi*2); t+=pi/180) { \
    print "P6"; print "256 256"; print "255"; \
    if (t==0) { \
      for (i=0;i<256*256;i++) \
        printf "%c%c%c",128,0,128; \
      continue \
    } \
    px=16*(sin(t)^3); \
    px*=7.5; \
    py=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t); \
    py*=7.5; \
    for (y=127;y>=-128;y--) \
      for (x=-128;x<128;x++) \
        if (sqrt((px-x)^2 + (py-y)^2) < 3) \
          printf "%c%c%c",255,0,0; \
        else \
          printf "%c%c%c",255,255,255; \
  }}' | convert -transparent white -compose Copy -set delay 1 -coalesce -layers RemoveDups - heart.gif

♡

awk

Görüşler

1
FZ

Bir POV-Ray vardi, n'oldu ona, yasiyor mu? O geldi simdi aklima.

1
auselen

Hep duymus, bakmis idim ama benim icin hep bir erisilebilirlik sorunu oldu. Ne ise yarar nasil kullanilir baslayamadim.

1
FZ

En son 1997 civari ellemistim sanirim, grafik isleri icin fena olmayan, isleri kolaylastiran bir programlama dili ile geliyordu, zaman parametresini de isin icine katarak animasyon olusturma imkani da sunuyordu. Bunlari kullanarak soyut/matematiksel birkac dakikalik bir animasyon hazirlamistik (saniye basina su kadar cerceveye karsilik gelen JPG dosyalarini uret gibi bir seydi, birlestirme ve uzerine muzik oturtma isini Adobe Premier ile yapmistik diye hatirliyorum). Hatirladigim kadari ile ray-tracing kullanarak cok guzel goruntu olusturma imkani sunuyordu. Dogasi itibari ile "embarrassingly parallel" sekilde calismaya da gayet musait idi. O zamandan bu yana ne tur ozellikler kazanmistir, hicbir fikrim yok tabii su anda.

Görüş belirtmek için giriş yapın...

İlgili Yazılar

FM'e göster: AWK ile küre boyamak

auselen

Abartıp tek satır demeyeceğim ama, AWK ile üç boyutlu küre boyamaca.

LC_ALL=ISO-8859-1 awk 'BEGIN{ \  pi=atan2(0, -1); r=126; \  for (j=0; j<360; j+=10) { \  lx=cos(pi/180*j); ly=sin(pi/180*j); lz=2; lm=sqrt(lx*lx+ly*ly+lz*lz); \  print "P6"; print "256 256"; print "255"; \  for (y=-128; y<128; y++) \  for (x=-128; x<128; x++) \  if (x*x+y*y < r*r) {...