Animatii impresionante codate in doar 140 caractere
Last Updated: Dec 29 2017 12:52, Started by
dani.user
, Dec 28 2017 13:41
·
0
#1
Posted 28 December 2017 - 13:41
https://www.dwitter.net/top
Participantii au implementat o functie apelata la fiecare moment de timp t. |
#2
Posted 28 December 2017 - 13:48
Oha
Deci chestiile alea vizuale si chiar colorate se pot face doar scriind niste aberatii? |
#3
Posted 28 December 2017 - 14:03
miroase a ceva fractali .. ptiu drace, iar vorbesc prostii, fractalii nu s-au inventat inca ..
|
#4
Posted 28 December 2017 - 14:21
imi aduce aminte de pascal.
erau 2 linii faimoase de asm cu care treceai pe 320x200x256 mov ax,$13 int 10h si inca o functie putpixel cu alea si 50-100 de linii de pascal puteai scoate animatii care rulau fluent pe un 386. astea web de azi au in spate librarii de zeci de mega si iti mananca 100% din procesor i3, i5 etc
Edited by MarianG, 29 December 2017 - 09:15.
|
#5
Posted 28 December 2017 - 14:40
r_murphy, on 28 decembrie 2017 - 14:03, said:
miroase a ceva fractali .. ptiu drace, iar vorbesc prostii, fractalii nu s-au inventat inca .. https://en.wikipedia...tal_compression dani.user, on 28 decembrie 2017 - 13:41, said:
https://www.dwitter.net/top Participantii au implementat o functie apelata la fiecare moment de timp t. https://en.wikipedia...ation_(software) |
#7
Posted 28 December 2017 - 14:42
Problema mare la obfuscation code asta e ca oricine ce intelege logica programarii il poate descifra. M-am chinuit ore in sir sa incerc sa gasesc un fel de cod care nu se executa secvential insa n-am reusit.
dani.user, on 28 decembrie 2017 - 14:41, said:
Obfuscation e altceva. |
#8
Posted 28 December 2017 - 14:47
Un exemplu de acolo:
c.width=1920; for(i=0;i<300;i++)for(j=0;j<6;j++){x.fillRect(960+200*C(i)*S(T(t/1.1)+j/i),540+200*S(i),10,10)} sau, pe lung: c.width = 1920; for (i = 0; i < 300; i++) for (j = 0; j < 6; j++) { x.fillRect(960 + 200 * C(i) * S(T(t / 1.1) + j / i), 540 + 200 * S(i), 10, 10) } Nu-si propune sa ascunda nimic. E doar mai ... inghesuit. Quote
u(t) is called 60 times per second. t: Elapsed time in seconds. S: Shorthand for Math.sin. C: Shorthand for Math.cos. T: Shorthand for Math.tan. R: Function that generates rgba-strings, usage ex.: R(255, 255, 255, 0.5) c: A 1920x1080 canvas. x: A 2D context for that canvas. Edited by dani.user, 28 December 2017 - 14:48. |
#9
Posted 28 December 2017 - 14:52
Pe sistemul asta ma gandeam ca poti inghesui cat cod vrei in doar o singura linie daca te folosesti de un calcul factorial.
r_murphy, on 28 decembrie 2017 - 14:42, said:
vezi ce destept sunt, doar am amintit de ei si s-au inventat .. ia vezi, daca zic de bilibistrocizarea tricozopergativa, se inventeaza si asta? @dani sa te intreb ceva. Daca la un procesor , in loc sa ii zic sa deseneze 100 puncte , pentru fiecare punct in parte facand cod, ii zic multiplica x cod de atatea ori cu n variatii, imi poate afisa o imagine? Adica mai pe scurt de exemplu daca ii zic "cutare linie de pixeli din film are numai pixel albastru deci scrie pixel albastru x 100 in loc de fiecare pixel scris" are vreo importanta, scuteste procesorul din lucru? |
#10
Posted 28 December 2017 - 14:58
Procesorul nu stie "multiplica x cod de atatea ori", procesorului trebuie sa-i zici pas cu pas: ia numarul asta, aduna 20 cu el, pune rezultatul acolo, etc.
|
|
#11
Posted 28 December 2017 - 15:10
Bun dar as putea scrie aceeasi imagine pixel cu pixel.
|
#13
Posted 28 December 2017 - 15:19
Draguță ideea. Am să încerc să fac ceva diseară.
Pun și eu ceva ce mi-a plăcut. E frontend, e offtopic, dar e cu The Simpsons: https://pattle.githu...impsons-in-css/ |
#14
Posted 28 December 2017 - 15:33
dani.user, on 28 decembrie 2017 - 15:15, said:
Poti s-o scrii pixel cu pixel. Si asta pentru ca executia codului apeleaza la header-ul oricarui program unde sunt bagate acele instructiuni de preprocesor ...parca invatasem ceva la c++ #include iostream #include math etc etc Ceea ce face ca varianta scurtata propusa de mine sa fie calculata la fel Ok @dani.user recunosc ca am gresit , acum si cu alte ocazii Edited by karax, 28 December 2017 - 15:31. |
#16
Posted 28 December 2017 - 20:52
Odata m-am jucat si eu cu niste pluginuri de Winamp, din alea de vizualizare, puteai baga formula. Erau tot ceva de genul asta, aveai acces la niste variabile. Insa iti trebuie ceva exercitiu sa faci ceva fain.
dani.user, on 28 decembrie 2017 - 16:26, said:
Executia n-are treaba cu headere si preprocesor. |
#17
Posted 29 December 2017 - 07:55
dani.user, on 28 decembrie 2017 - 16:26, said:
Executia n-are treaba cu headere si preprocesor. Ceea ce incercam eu sa zic se poate face daca in headere si librariile astea sunt facute bucati de programare tot pe sistemul loop. Care ele sa lucreze mai departe cu ceea ce ziceam mai sus. Spre exemplu iti trebuie o definitie mai scurta pentru inmultirea repetata Ca sa se realizeze ce ziceam. Asa se poate ajunge la compresii mari. maccip, on 28 decembrie 2017 - 20:52, said:
Odata m-am jucat si eu cu niste pluginuri de Winamp, din alea de vizualizare, puteai baga formula. Erau tot ceva de genul asta, aveai acces la niste variabile. Insa iti trebuie ceva exercitiu sa faci ceva fain. Da, practic tu scrii continutul unei singure functii de tip callback pe care urmeaza s-o apeleze engine-ul. |
#18
Posted 29 December 2017 - 09:13
E un parser de expresii aritmetice ma. Ma rog.. tot un fel de compilator, genereaza in final un cod care sa fie interpretat de engine si in final de masina.
Headerele si directivele de preprocesor sunt specifice limbajelor de programare. Directivele sunt instructiuni care afecteaza functionarea compilatorului, ele nu produc cod(masina). Dar ii zic compilatorului ce sa faca, cum sa interpreteze o anumita sintaxa, unde gaseste definitiile pentru un anume simbol, etc.. Un parser de expresii aritmetice lucreaza in spate cu o gramatica (specifica unui limbaj, care se identifica cu un limbaj). Gramatica contine regulile de productie prin care sunt extrase simbolurile. Simbolurile fac legatura biunivoca intre textul scris, inteligibil de catre om si simbolurile masina (adrese, variabile, obiecte, proceduri, operatii, etc..). Chiar si un banal printf (din biblioteca standard C) contine un parser de text. printf("In anul %d, va veni sfarsitul lumii. Cercetatorul britanic %s a prezis acest lucru", AnulApocalipsei, NumePrezicator);Stringul prezentat ca si argument functiei printf(), contine text care trebuie, inlocuit cu niste valori, valori interpretate conform specificatorilor de format %s, %d, %f si care-or mai fi. Edited by maccip, 29 December 2017 - 09:14. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users