out 4 2008

Perspectiva, efeito 3d e eixo arbitrário com javascript

  • Autor: admin em javascript
  • Sem Comentários. Seja o primeiro a comentar.
Graças ao grande Tio Elsio, ele é ótimo com cálculos trigonométricos usando javascript, com isso ele faz uns efeitos bem cabulosos =)

Este script foi feito por ele, e faz uma rotacão em eixo arbitrário e perspectiva com “uma leve alteração da escala conforme aproximação da figura”

[html]<textarea style=”display:none”>
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 7e 81 a5 81 81 bd 99 81 81 7e 00 00 00 00
 00 00 7e ff db ff ff c3 e7 ff ff 7e 00 00 00 00
 00 00 00 00 6c fe fe fe fe 7c 38 10 00 00 00 00
 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00
 00 00 00 18 3c 3c e7 e7 e7 18 18 3c 00 00 00 00
 00 00 00 18 3c 7e ff ff 7e 18 18 3c 00 00 00 00
 00 00 00 00 00 00 18 3c 3c 18 00 00 00 00 00 00
 ff ff ff ff ff ff e7 c3 c3 e7 ff ff ff ff ff ff
 00 00 00 00 00 3c 66 42 42 66 3c 00 00 00 00 00
 ff ff ff ff ff c3 99 bd bd 99 c3 ff ff ff ff ff
 00 00 1e 0e 1a 32 78 cc cc cc cc 78 00 00 00 00
 00 00 3c 66 66 66 66 3c 18 7e 18 18 00 00 00 00
 00 00 3f 33 3f 30 30 30 30 70 f0 e0 00 00 00 00
 00 00 7f 63 7f 63 63 63 63 67 e7 e6 c0 00 00 00
 00 00 00 18 18 db 3c e7 3c db 18 18 00 00 00 00
 00 80 c0 e0 f0 f8 fe f8 f0 e0 c0 80 00 00 00 00
 00 02 06 0e 1e 3e fe 3e 1e 0e 06 02 00 00 00 00
 00 00 18 3c 7e 18 18 18 7e 3c 18 00 00 00 00 00
 00 00 66 66 66 66 66 66 66 00 66 66 00 00 00 00
 00 00 7f db db db 7b 1b 1b 1b 1b 1b 00 00 00 00
 00 7c c6 60 38 6c c6 c6 6c 38 0c c6 7c 00 00 00
 00 00 00 00 00 00 00 00 fe fe fe fe 00 00 00 00
 00 00 18 3c 7e 18 18 18 7e 3c 18 7e 00 00 00 00
 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00
 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00
 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00
 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00
 00 00 00 00 00 00 c0 c0 c0 fe 00 00 00 00 00 00
 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00
 00 00 00 00 10 38 38 7c 7c fe fe 00 00 00 00 00
 00 00 00 00 fe fe 7c 7c 38 38 10 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00
 00 66 66 66 24 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00
 18 18 7c c6 c2 c0 7c 06 06 86 c6 7c 18 18 00 00
 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00
 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00
 00 30 30 30 60 00 00 00 00 00 00 00 00 00 00 00
 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00
 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00
 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00
 00 00 00 00 00 18 18 7e 18 18 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 18 18 18 30 00 00 00
 00 00 00 00 00 00 00 fe 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 18 18 00 00 00 00
 00 00 00 00 02 06 0c 18 30 60 c0 80 00 00 00 00
 00 00 38 6c c6 c6 d6 d6 c6 c6 6c 38 00 00 00 00
 00 00 18 38 78 18 18 18 18 18 18 7e 00 00 00 00
 00 00 7c c6 06 0c 18 30 60 c0 c6 fe 00 00 00 00
 00 00 7c c6 06 06 3c 06 06 06 c6 7c 00 00 00 00
 00 00 0c 1c 3c 6c cc fe 0c 0c 0c 1e 00 00 00 00
 00 00 fe c0 c0 c0 fc 06 06 06 c6 7c 00 00 00 00
 00 00 38 60 c0 c0 fc c6 c6 c6 c6 7c 00 00 00 00
 00 00 fe c6 06 06 0c 18 30 30 30 30 00 00 00 00
 00 00 7c c6 c6 c6 7c c6 c6 c6 c6 7c 00 00 00 00
 00 00 7c c6 c6 c6 7e 06 06 06 0c 78 00 00 00 00
 00 00 00 00 18 18 00 00 00 18 18 00 00 00 00 00
 00 00 00 00 18 18 00 00 00 18 18 30 00 00 00 00
 00 00 00 06 0c 18 30 60 30 18 0c 06 00 00 00 00
 00 00 00 00 00 7e 00 00 7e 00 00 00 00 00 00 00
 00 00 00 60 30 18 0c 06 0c 18 30 60 00 00 00 00
 00 00 7c c6 c6 0c 18 18 18 00 18 18 00 00 00 00
 00 00 00 7c c6 c6 de de de dc c0 7c 00 00 00 00
 00 00 10 38 6c c6 c6 fe c6 c6 c6 c6 00 00 00 00
 00 00 fc 66 66 66 7c 66 66 66 66 fc 00 00 00 00
 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 00 00 00 00
 00 00 f8 6c 66 66 66 66 66 66 6c f8 00 00 00 00
 00 00 fe 66 62 68 78 68 60 62 66 fe 00 00 00 00
 00 00 fe 66 62 68 78 68 60 60 60 f0 00 00 00 00
 00 00 3c 66 c2 c0 c0 de c6 c6 66 3a 00 00 00 00
 00 00 c6 c6 c6 c6 fe c6 c6 c6 c6 c6 00 00 00 00
 00 00 3c 18 18 18 18 18 18 18 18 3c 00 00 00 00
 00 00 1e 0c 0c 0c 0c 0c cc cc cc 78 00 00 00 00
 00 00 e6 66 66 6c 78 78 6c 66 66 e6 00 00 00 00
 00 00 f0 60 60 60 60 60 60 62 66 fe 00 00 00 00
 00 00 c6 ee fe fe d6 c6 c6 c6 c6 c6 00 00 00 00
 00 00 c6 e6 f6 fe de ce c6 c6 c6 c6 00 00 00 00
 00 00 7c c6 c6 c6 c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 fc 66 66 66 7c 60 60 60 60 f0 00 00 00 00
 00 00 7c c6 c6 c6 c6 c6 c6 d6 de 7c 0c 0e 00 00
 00 00 fc 66 66 66 7c 6c 66 66 66 e6 00 00 00 00
 00 00 7c c6 c6 60 38 0c 06 c6 c6 7c 00 00 00 00
 00 00 7e 7e 5a 18 18 18 18 18 18 3c 00 00 00 00
 00 00 c6 c6 c6 c6 c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 c6 c6 c6 c6 c6 c6 c6 6c 38 10 00 00 00 00
 00 00 c6 c6 c6 c6 d6 d6 d6 fe ee 6c 00 00 00 00
 00 00 c6 c6 6c 7c 38 38 7c 6c c6 c6 00 00 00 00
 00 00 66 66 66 66 3c 18 18 18 18 3c 00 00 00 00
 00 00 fe c6 86 0c 18 30 60 c2 c6 fe 00 00 00 00
 00 00 3c 30 30 30 30 30 30 30 30 3c 00 00 00 00
 00 00 00 80 c0 e0 70 38 1c 0e 06 02 00 00 00 00
 00 00 3c 0c 0c 0c 0c 0c 0c 0c 0c 3c 00 00 00 00
 10 38 6c c6 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00
 00 30 18 0c 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 78 0c 7c cc cc cc 76 00 00 00 00
 00 00 e0 60 60 78 6c 66 66 66 66 7c 00 00 00 00
 00 00 00 00 00 7c c6 c0 c0 c0 c6 7c 00 00 00 00
 00 00 1c 0c 0c 3c 6c cc cc cc cc 76 00 00 00 00
 00 00 00 00 00 7c c6 fe c0 c0 c6 7c 00 00 00 00
 00 00 1c 36 32 30 78 30 30 30 30 78 00 00 00 00
 00 00 00 00 00 76 cc cc cc cc cc 7c 0c cc 78 00
 00 00 e0 60 60 6c 76 66 66 66 66 e6 00 00 00 00
 00 00 18 18 00 38 18 18 18 18 18 3c 00 00 00 00
 00 00 06 06 00 0e 06 06 06 06 06 06 66 66 3c 00
 00 00 e0 60 60 66 6c 78 78 6c 66 e6 00 00 00 00
 00 00 38 18 18 18 18 18 18 18 18 3c 00 00 00 00
 00 00 00 00 00 ec fe d6 d6 d6 d6 c6 00 00 00 00
 00 00 00 00 00 dc 66 66 66 66 66 66 00 00 00 00
 00 00 00 00 00 7c c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 00 00 00 dc 66 66 66 66 66 7c 60 60 f0 00
 00 00 00 00 00 76 cc cc cc cc cc 7c 0c 0c 1e 00
 00 00 00 00 00 dc 76 66 60 60 60 f0 00 00 00 00
 00 00 00 00 00 7c c6 60 38 0c c6 7c 00 00 00 00
 00 00 10 30 30 fc 30 30 30 30 36 1c 00 00 00 00
 00 00 00 00 00 cc cc cc cc cc cc 76 00 00 00 00
 00 00 00 00 00 c6 c6 c6 c6 c6 6c 38 00 00 00 00
 00 00 00 00 00 c6 c6 d6 d6 d6 fe 6c 00 00 00 00
 00 00 00 00 00 c6 6c 38 38 38 6c c6 00 00 00 00
 00 00 00 00 00 c6 c6 c6 c6 c6 c6 7e 06 0c f8 00
 00 00 00 00 00 fe cc 18 30 60 c6 fe 00 00 00 00
 00 00 0e 18 18 18 70 18 18 18 18 0e 00 00 00 00
 00 00 18 18 18 18 18 18 18 18 18 18 00 00 00 00
 00 00 70 18 18 18 0e 18 18 18 18 70 00 00 00 00
 00 76 dc 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 10 38 6c c6 c6 c6 fe 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 30 60 60 30 00 00 00 00 00 00 00 00 00 00 00
 00 0c 06 06 0c 00 00 00 00 00 00 00 00 00 00 00
 00 38 6c 64 60 f0 60 60 60 60 ec fc 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 18 18 18 18 18 00 00 18 18 18 18 18 00 00
 00 00 7c c6 60 38 6c c6 c6 6c 38 0c c6 7c 00 00
 00 66 66 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 18 66 c3 99 a1 a1 99 c3 66 18 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00
 00 00 00 00 00 00 00 ff 03 03 00 00 00 00 00 00
 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00
 00 38 6c 6c 38 00 00 00 00 00 00 00 00 00 00 00
 00 00 18 18 7e 18 18 00 7e 00 00 00 00 00 00 00
 00 3c 66 0c 18 32 7e 00 00 00 00 00 00 00 00 00
 3c 66 06 1e 06 66 3c 00 00 00 00 00 00 00 00 00
 06 0c 18 00 00 00 00 00 00 00 00 00 00 00 00 00
 06 0c 18 c3 00 00 00 00 00 00 00 00 00 00 00 00
 00 c0 90 b8 6c c6 c6 fe c6 c6 c6 c6 00 00 00 00
 00 18 18 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 bf b1 30 30 3e 30 30 31 31 3f 00 00 00 00
 00 00 b3 b3 33 33 3f 33 33 33 33 00 00 00 00 00
 00 00 bc 98 18 18 18 18 18 18 18 3c 00 00 00 00
 00 00 00 00 d8 6c 36 6c d8 00 00 00 00 00 00 00
 00 00 9e b3 33 33 33 33 33 33 1e 00 00 00 00 00
 00 00 60 e0 62 66 6c 18 30 60 dc 86 0c 18 1e 00
 00 00 b3 b3 33 33 1e 0c 0c 0c 0c 1e 00 00 00 00
 00 00 9e b3 21 21 21 21 21 33 12 33 00 00 00 00
 0c 08 00 66 00 18 18 18 18 18 18 0e 00 00 00 00
 00 00 10 38 6c c6 c6 fe c6 c6 c6 c6 00 00 00 00
 00 00 fc 66 66 66 7c 66 66 66 66 fc 00 00 00 00
 00 00 fe 62 60 60 60 60 60 60 60 f0 00 00 00 00
 00 00 10 38 6c c6 c6 c6 c6 c6 c6 fe 00 00 00 00
 00 00 fe 66 62 68 78 68 60 62 66 fe 00 00 00 00
 00 00 fe c6 86 0c 18 30 60 c2 c6 fe 00 00 00 00
 00 00 c6 c6 c6 c6 fe c6 c6 c6 c6 c6 00 00 00 00
 00 00 7c c6 c6 c6 fe c6 c6 c6 c6 7c 00 00 00 00
 00 00 3c 18 18 18 18 18 18 18 18 3c 00 00 00 00
 00 00 e6 66 66 6c 78 78 6c 66 66 e6 00 00 00 00
 00 00 10 38 6c c6 c6 c6 c6 c6 c6 c6 00 00 00 00
 00 00 c6 ee fe fe d6 c6 c6 c6 c6 c6 00 00 00 00
 00 00 c6 e6 f6 fe de ce c6 c6 c6 c6 00 00 00 00
 00 00 fe 82 00 00 7c 00 00 00 82 fe 00 00 00 00
 00 00 7c c6 c6 c6 c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 fe c6 c6 c6 c6 c6 c6 c6 c6 c6 00 00 00 00
 00 00 fc 66 66 66 7c 60 60 60 60 f0 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 fe c0 60 30 18 18 30 60 c0 fe 00 00 00 00
 00 00 7e 7e 5a 18 18 18 18 18 18 3c 00 00 00 00
 00 00 66 66 66 66 3c 18 18 18 18 3c 00 00 00 00
 00 00 3c 18 7e 99 99 99 7e 18 18 3c 00 00 00 00
 00 00 c6 c6 6c 7c 38 38 7c 6c c6 c6 00 00 00 00
 00 00 18 db db db db db 7e 18 18 3c 00 00 00 00
 00 00 3c 66 c3 c3 c3 c3 c3 66 24 e7 00 00 00 00
 00 c3 18 18 18 18 18 18 18 18 18 18 00 00 00 00
 c3 00 66 66 66 66 3c 18 18 18 18 3c 00 00 00 00
 00 00 38 10 00 7b ce cc cc cc cc 7b 00 00 00 00
 00 00 38 10 00 7c c6 c0 78 c0 c6 7c 00 00 00 00
 00 00 38 10 00 dc 66 66 66 66 66 66 06 06 06 00
 00 00 38 10 00 18 18 18 18 18 18 0e 00 00 00 00
 00 18 c3 00 00 e7 66 66 66 66 66 3c 00 00 00 00
 00 00 00 00 00 7b ce cc cc cc cc 7b 00 00 00 00
 00 00 7c c6 c6 c6 c6 fc c6 c6 c6 fc c0 c0 c0 00
 00 00 00 00 00 c3 66 3c 18 3c 66 42 66 3c 00 00
 00 7c 60 30 18 78 cc cc cc cc cc 78 00 00 00 00
 00 00 00 00 00 7c c6 c0 78 c0 c6 7c 00 00 00 00
 00 00 fc 0c 18 30 60 c0 c0 c0 c0 78 0c 0c 78 00
 00 00 00 00 00 dc 66 66 66 66 66 66 06 06 06 00
 00 00 3e 63 63 63 7f 63 63 63 63 3e 00 00 00 00
 00 00 00 00 00 18 18 18 18 18 18 0e 00 00 00 00
 00 00 00 00 00 e6 6c 78 78 6c 66 e6 00 00 00 00
 00 00 38 6c 0c 0c 0c 36 66 66 66 66 00 00 00 00
 00 00 00 00 00 66 66 66 66 66 66 7f 60 60 60 00
 00 00 00 00 00 82 c6 c6 6c 6c 38 38 00 00 00 00
 00 00 fc 60 c0 78 30 60 c0 c0 c0 7c 06 06 3c 00
 00 00 00 00 00 7c c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 00 00 00 ff 66 66 66 66 66 66 00 00 00 00
 00 00 00 00 00 3c 66 66 66 66 66 7c 60 60 60 00
 00 00 00 00 00 3e 63 c0 c0 60 38 0c c6 7c 00 00
 00 00 00 00 00 7f cc cc cc cc cc 78 00 00 00 00
 00 00 00 00 00 7c 30 30 30 30 36 1c 00 00 00 00
 00 00 00 00 00 e7 66 66 66 66 66 3c 00 00 00 00
 00 00 00 00 00 5c d6 d6 d6 d6 d6 7c 10 10 10 00
 00 00 00 00 00 c6 6c 38 38 38 6c c6 00 00 00 00
 00 00 00 00 00 d6 d6 d6 d6 d6 d6 7c 10 10 10 00
 00 00 00 00 00 66 c3 c3 c3 db ff 66 00 00 00 00
 00 00 c3 00 00 18 18 18 18 18 18 0e 00 00 00 00
 00 00 c3 00 00 e7 66 66 66 66 66 3c 00 00 00 00
 00 00 38 10 00 7c c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 38 10 00 e7 66 66 66 66 66 3c 00 00 00 00
 00 00 38 10 00 66 c3 c3 c3 db ff 66 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</textarea>
</body>
<script>

 

 

   // preenche as arrays de pontos
   // no caso, com letras

   x=[]
   y=[]
   z=[]

   linhas = document.getElementsByTagName(“textarea”)[0].value.split(“\n”)

   frase = “efeito 3d”

   for(h=0;h<frase.length;h++){
      caracter = linhas[frase.charCodeAt(h)].match(/[a-f0-9]{2}/gi)
      for(j=0;j<caracter.length;j++){
         n=parseInt(caracter[j],16)
         for(b=0;b<8;b++){
            s=n%2
            if(s){
               x[x.length]=(7-b)/8
               y[y.length]=j/caracter.length*2+4
               z[z.length]=0
            }
            n=(n-s)/2
         }
      }

      rotacao(0,0,15)

   }

 

   // girando a figura em 60 graus no eixo x
   // pra demostrar a rotação num eixo arbitrário

   cord = rotacao(60,0,0)

 

 

 

 

 

   // function plota pixel
   // com sombra!
   // a sombra tem que ser plotada atrás

   pixel = [];
   sombra = [];
   function plot(handler, x, y) {
      if (!pixel[handler]) {
         pixel[handler] = document.createElement(“div”);
         pixel[handler].style.width = 5;
         pixel[handler].style.height = 5;
         pixel[handler].style.position = “absolute”;
         pixel[handler].style.background = “olive”;
         pixel[handler].style.zIndex = 1

         sombra[handler] = pixel[handler].cloneNode(true)
         sombra[handler].style.background = “black”;
         sombra[handler].style.opacity = .4;
         sombra[handler].style.zIndex = 0;

         document.body.appendChild(sombra[handler]);
         document.body.appendChild(pixel[handler]);
      }

      pixel[handler].style.left = x;
      pixel[handler].style.top = y;
      sombra[handler].style.left = x+2;
      sombra[handler].style.top = y+2;
   }

 

 

 

 

   // função que rotaciona os pontos
   // agora os de atribuição também.
   // dessa forma, na hora de atribuir pontos às matrizes
   // já posso fazê-lo numa determinada rotação

   function rotacao(ax,ay,az){

      radianosz = az/180*Math.PI
      radianosy = ay/180*Math.PI
      radianosx = ax/180*Math.PI

      cosx = Math.cos(radianosx)
      cosy = Math.cos(radianosy)
      cosz = Math.cos(radianosz)

      sinx = Math.sin(radianosx)
      siny = Math.sin(radianosy)
      sinz = Math.sin(radianosz)

      for (j = 0; j < x.length; j++) {

         tmpx = (x[j] * cosz – y[j] * sinz) * cosy – z[j] * siny
         tmpz = z[j] * cosy + (x[j] * cosz – y[j] * sinz) * siny

   z[j] = tmpz

         tmpy = (y[j] * cosz + x[j] * sinz) * cosx – z[j] * sinx
         tmpz = z[j] * cosx + (y[j] * cosz + x[j] * sinz) * sinx

         x[j] = tmpx
         y[j] = tmpy
   z[j] = tmpz
      }
   }

 

 

 

 

 

 
   // plota o conteúdo de x[], y[] e z[]
   // girando…
   // agora, num eixo arbitrário

   centrox = 500;
   centroy = 250;
   centroz = 0;

   setInterval(function(){
      // para girar num eixo arbitrário
      // segundo meu livro de compugrafia
      // primeiro gira-se  o objeto,
      // previamente girado num grau qualquer
      // para sua posição original
      // lá em cima haviamos alterado pra 60 graus no eixo x
      // agora tiramos isso

      cord = rotacao(-60,0,0)

 

      // agora,
      // com a imagem no eixo original
      // giro ela num eixo, no caso o z

      cord = rotacao(0,0,5)

 
   // agora eu devolvo a figura à sua posição original
   // que havia deixado no início do script

   cord = rotacao(60,0,0)

 
      // posso agora plotar essa bagaça

      for(i = 0; i < x.length; i++) {
         escala = (z[i]+15) * 5
         plot(i, x[i] * escala + centrox, y[i] * escala + centroy);
      }

 

 

   },10)

 

</script>[/html]
Demo: http://byteblog.net/rotacao025.htm

Agora escondendo o conteúdo:

[html]<textarea style=”display:none”>
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 7e 81 a5 81 81 bd 99 81 81 7e 00 00 00 00
 00 00 7e ff db ff ff c3 e7 ff ff 7e 00 00 00 00
 00 00 00 00 6c fe fe fe fe 7c 38 10 00 00 00 00
 00 00 00 00 10 38 7c fe 7c 38 10 00 00 00 00 00
 00 00 00 18 3c 3c e7 e7 e7 18 18 3c 00 00 00 00
 00 00 00 18 3c 7e ff ff 7e 18 18 3c 00 00 00 00
 00 00 00 00 00 00 18 3c 3c 18 00 00 00 00 00 00
 ff ff ff ff ff ff e7 c3 c3 e7 ff ff ff ff ff ff
 00 00 00 00 00 3c 66 42 42 66 3c 00 00 00 00 00
 ff ff ff ff ff c3 99 bd bd 99 c3 ff ff ff ff ff
 00 00 1e 0e 1a 32 78 cc cc cc cc 78 00 00 00 00
 00 00 3c 66 66 66 66 3c 18 7e 18 18 00 00 00 00
 00 00 3f 33 3f 30 30 30 30 70 f0 e0 00 00 00 00
 00 00 7f 63 7f 63 63 63 63 67 e7 e6 c0 00 00 00
 00 00 00 18 18 db 3c e7 3c db 18 18 00 00 00 00
 00 80 c0 e0 f0 f8 fe f8 f0 e0 c0 80 00 00 00 00
 00 02 06 0e 1e 3e fe 3e 1e 0e 06 02 00 00 00 00
 00 00 18 3c 7e 18 18 18 7e 3c 18 00 00 00 00 00
 00 00 66 66 66 66 66 66 66 00 66 66 00 00 00 00
 00 00 7f db db db 7b 1b 1b 1b 1b 1b 00 00 00 00
 00 7c c6 60 38 6c c6 c6 6c 38 0c c6 7c 00 00 00
 00 00 00 00 00 00 00 00 fe fe fe fe 00 00 00 00
 00 00 18 3c 7e 18 18 18 7e 3c 18 7e 00 00 00 00
 00 00 18 3c 7e 18 18 18 18 18 18 18 00 00 00 00
 00 00 18 18 18 18 18 18 18 7e 3c 18 00 00 00 00
 00 00 00 00 00 18 0c fe 0c 18 00 00 00 00 00 00
 00 00 00 00 00 30 60 fe 60 30 00 00 00 00 00 00
 00 00 00 00 00 00 c0 c0 c0 fe 00 00 00 00 00 00
 00 00 00 00 00 28 6c fe 6c 28 00 00 00 00 00 00
 00 00 00 00 10 38 38 7c 7c fe fe 00 00 00 00 00
 00 00 00 00 fe fe 7c 7c 38 38 10 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 18 3c 3c 3c 18 18 18 00 18 18 00 00 00 00
 00 66 66 66 24 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 6c 6c fe 6c 6c 6c fe 6c 6c 00 00 00 00
 18 18 7c c6 c2 c0 7c 06 06 86 c6 7c 18 18 00 00
 00 00 00 00 c2 c6 0c 18 30 60 c6 86 00 00 00 00
 00 00 38 6c 6c 38 76 dc cc cc cc 76 00 00 00 00
 00 30 30 30 60 00 00 00 00 00 00 00 00 00 00 00
 00 00 0c 18 30 30 30 30 30 30 18 0c 00 00 00 00
 00 00 30 18 0c 0c 0c 0c 0c 0c 18 30 00 00 00 00
 00 00 00 00 00 66 3c ff 3c 66 00 00 00 00 00 00
 00 00 00 00 00 18 18 7e 18 18 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 18 18 18 30 00 00 00
 00 00 00 00 00 00 00 fe 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 18 18 00 00 00 00
 00 00 00 00 02 06 0c 18 30 60 c0 80 00 00 00 00
 00 00 38 6c c6 c6 d6 d6 c6 c6 6c 38 00 00 00 00
 00 00 18 38 78 18 18 18 18 18 18 7e 00 00 00 00
 00 00 7c c6 06 0c 18 30 60 c0 c6 fe 00 00 00 00
 00 00 7c c6 06 06 3c 06 06 06 c6 7c 00 00 00 00
 00 00 0c 1c 3c 6c cc fe 0c 0c 0c 1e 00 00 00 00
 00 00 fe c0 c0 c0 fc 06 06 06 c6 7c 00 00 00 00
 00 00 38 60 c0 c0 fc c6 c6 c6 c6 7c 00 00 00 00
 00 00 fe c6 06 06 0c 18 30 30 30 30 00 00 00 00
 00 00 7c c6 c6 c6 7c c6 c6 c6 c6 7c 00 00 00 00
 00 00 7c c6 c6 c6 7e 06 06 06 0c 78 00 00 00 00
 00 00 00 00 18 18 00 00 00 18 18 00 00 00 00 00
 00 00 00 00 18 18 00 00 00 18 18 30 00 00 00 00
 00 00 00 06 0c 18 30 60 30 18 0c 06 00 00 00 00
 00 00 00 00 00 7e 00 00 7e 00 00 00 00 00 00 00
 00 00 00 60 30 18 0c 06 0c 18 30 60 00 00 00 00
 00 00 7c c6 c6 0c 18 18 18 00 18 18 00 00 00 00
 00 00 00 7c c6 c6 de de de dc c0 7c 00 00 00 00
 00 00 10 38 6c c6 c6 fe c6 c6 c6 c6 00 00 00 00
 00 00 fc 66 66 66 7c 66 66 66 66 fc 00 00 00 00
 00 00 3c 66 c2 c0 c0 c0 c0 c2 66 3c 00 00 00 00
 00 00 f8 6c 66 66 66 66 66 66 6c f8 00 00 00 00
 00 00 fe 66 62 68 78 68 60 62 66 fe 00 00 00 00
 00 00 fe 66 62 68 78 68 60 60 60 f0 00 00 00 00
 00 00 3c 66 c2 c0 c0 de c6 c6 66 3a 00 00 00 00
 00 00 c6 c6 c6 c6 fe c6 c6 c6 c6 c6 00 00 00 00
 00 00 3c 18 18 18 18 18 18 18 18 3c 00 00 00 00
 00 00 1e 0c 0c 0c 0c 0c cc cc cc 78 00 00 00 00
 00 00 e6 66 66 6c 78 78 6c 66 66 e6 00 00 00 00
 00 00 f0 60 60 60 60 60 60 62 66 fe 00 00 00 00
 00 00 c6 ee fe fe d6 c6 c6 c6 c6 c6 00 00 00 00
 00 00 c6 e6 f6 fe de ce c6 c6 c6 c6 00 00 00 00
 00 00 7c c6 c6 c6 c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 fc 66 66 66 7c 60 60 60 60 f0 00 00 00 00
 00 00 7c c6 c6 c6 c6 c6 c6 d6 de 7c 0c 0e 00 00
 00 00 fc 66 66 66 7c 6c 66 66 66 e6 00 00 00 00
 00 00 7c c6 c6 60 38 0c 06 c6 c6 7c 00 00 00 00
 00 00 7e 7e 5a 18 18 18 18 18 18 3c 00 00 00 00
 00 00 c6 c6 c6 c6 c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 c6 c6 c6 c6 c6 c6 c6 6c 38 10 00 00 00 00
 00 00 c6 c6 c6 c6 d6 d6 d6 fe ee 6c 00 00 00 00
 00 00 c6 c6 6c 7c 38 38 7c 6c c6 c6 00 00 00 00
 00 00 66 66 66 66 3c 18 18 18 18 3c 00 00 00 00
 00 00 fe c6 86 0c 18 30 60 c2 c6 fe 00 00 00 00
 00 00 3c 30 30 30 30 30 30 30 30 3c 00 00 00 00
 00 00 00 80 c0 e0 70 38 1c 0e 06 02 00 00 00 00
 00 00 3c 0c 0c 0c 0c 0c 0c 0c 0c 3c 00 00 00 00
 10 38 6c c6 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00
 00 30 18 0c 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 78 0c 7c cc cc cc 76 00 00 00 00
 00 00 e0 60 60 78 6c 66 66 66 66 7c 00 00 00 00
 00 00 00 00 00 7c c6 c0 c0 c0 c6 7c 00 00 00 00
 00 00 1c 0c 0c 3c 6c cc cc cc cc 76 00 00 00 00
 00 00 00 00 00 7c c6 fe c0 c0 c6 7c 00 00 00 00
 00 00 1c 36 32 30 78 30 30 30 30 78 00 00 00 00
 00 00 00 00 00 76 cc cc cc cc cc 7c 0c cc 78 00
 00 00 e0 60 60 6c 76 66 66 66 66 e6 00 00 00 00
 00 00 18 18 00 38 18 18 18 18 18 3c 00 00 00 00
 00 00 06 06 00 0e 06 06 06 06 06 06 66 66 3c 00
 00 00 e0 60 60 66 6c 78 78 6c 66 e6 00 00 00 00
 00 00 38 18 18 18 18 18 18 18 18 3c 00 00 00 00
 00 00 00 00 00 ec fe d6 d6 d6 d6 c6 00 00 00 00
 00 00 00 00 00 dc 66 66 66 66 66 66 00 00 00 00
 00 00 00 00 00 7c c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 00 00 00 dc 66 66 66 66 66 7c 60 60 f0 00
 00 00 00 00 00 76 cc cc cc cc cc 7c 0c 0c 1e 00
 00 00 00 00 00 dc 76 66 60 60 60 f0 00 00 00 00
 00 00 00 00 00 7c c6 60 38 0c c6 7c 00 00 00 00
 00 00 10 30 30 fc 30 30 30 30 36 1c 00 00 00 00
 00 00 00 00 00 cc cc cc cc cc cc 76 00 00 00 00
 00 00 00 00 00 c6 c6 c6 c6 c6 6c 38 00 00 00 00
 00 00 00 00 00 c6 c6 d6 d6 d6 fe 6c 00 00 00 00
 00 00 00 00 00 c6 6c 38 38 38 6c c6 00 00 00 00
 00 00 00 00 00 c6 c6 c6 c6 c6 c6 7e 06 0c f8 00
 00 00 00 00 00 fe cc 18 30 60 c6 fe 00 00 00 00
 00 00 0e 18 18 18 70 18 18 18 18 0e 00 00 00 00
 00 00 18 18 18 18 18 18 18 18 18 18 00 00 00 00
 00 00 70 18 18 18 0e 18 18 18 18 70 00 00 00 00
 00 76 dc 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 10 38 6c c6 c6 c6 fe 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 30 60 60 30 00 00 00 00 00 00 00 00 00 00 00
 00 0c 06 06 0c 00 00 00 00 00 00 00 00 00 00 00
 00 38 6c 64 60 f0 60 60 60 60 ec fc 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 18 18 18 18 18 00 00 18 18 18 18 18 00 00
 00 00 7c c6 60 38 6c c6 c6 6c 38 0c c6 7c 00 00
 00 66 66 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 18 66 c3 99 a1 a1 99 c3 66 18 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 36 6c d8 6c 36 00 00 00 00
 00 00 00 00 00 00 00 ff 03 03 00 00 00 00 00 00
 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00
 00 38 6c 6c 38 00 00 00 00 00 00 00 00 00 00 00
 00 00 18 18 7e 18 18 00 7e 00 00 00 00 00 00 00
 00 3c 66 0c 18 32 7e 00 00 00 00 00 00 00 00 00
 3c 66 06 1e 06 66 3c 00 00 00 00 00 00 00 00 00
 06 0c 18 00 00 00 00 00 00 00 00 00 00 00 00 00
 06 0c 18 c3 00 00 00 00 00 00 00 00 00 00 00 00
 00 c0 90 b8 6c c6 c6 fe c6 c6 c6 c6 00 00 00 00
 00 18 18 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 bf b1 30 30 3e 30 30 31 31 3f 00 00 00 00
 00 00 b3 b3 33 33 3f 33 33 33 33 00 00 00 00 00
 00 00 bc 98 18 18 18 18 18 18 18 3c 00 00 00 00
 00 00 00 00 d8 6c 36 6c d8 00 00 00 00 00 00 00
 00 00 9e b3 33 33 33 33 33 33 1e 00 00 00 00 00
 00 00 60 e0 62 66 6c 18 30 60 dc 86 0c 18 1e 00
 00 00 b3 b3 33 33 1e 0c 0c 0c 0c 1e 00 00 00 00
 00 00 9e b3 21 21 21 21 21 33 12 33 00 00 00 00
 0c 08 00 66 00 18 18 18 18 18 18 0e 00 00 00 00
 00 00 10 38 6c c6 c6 fe c6 c6 c6 c6 00 00 00 00
 00 00 fc 66 66 66 7c 66 66 66 66 fc 00 00 00 00
 00 00 fe 62 60 60 60 60 60 60 60 f0 00 00 00 00
 00 00 10 38 6c c6 c6 c6 c6 c6 c6 fe 00 00 00 00
 00 00 fe 66 62 68 78 68 60 62 66 fe 00 00 00 00
 00 00 fe c6 86 0c 18 30 60 c2 c6 fe 00 00 00 00
 00 00 c6 c6 c6 c6 fe c6 c6 c6 c6 c6 00 00 00 00
 00 00 7c c6 c6 c6 fe c6 c6 c6 c6 7c 00 00 00 00
 00 00 3c 18 18 18 18 18 18 18 18 3c 00 00 00 00
 00 00 e6 66 66 6c 78 78 6c 66 66 e6 00 00 00 00
 00 00 10 38 6c c6 c6 c6 c6 c6 c6 c6 00 00 00 00
 00 00 c6 ee fe fe d6 c6 c6 c6 c6 c6 00 00 00 00
 00 00 c6 e6 f6 fe de ce c6 c6 c6 c6 00 00 00 00
 00 00 fe 82 00 00 7c 00 00 00 82 fe 00 00 00 00
 00 00 7c c6 c6 c6 c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 fe c6 c6 c6 c6 c6 c6 c6 c6 c6 00 00 00 00
 00 00 fc 66 66 66 7c 60 60 60 60 f0 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 fe c0 60 30 18 18 30 60 c0 fe 00 00 00 00
 00 00 7e 7e 5a 18 18 18 18 18 18 3c 00 00 00 00
 00 00 66 66 66 66 3c 18 18 18 18 3c 00 00 00 00
 00 00 3c 18 7e 99 99 99 7e 18 18 3c 00 00 00 00
 00 00 c6 c6 6c 7c 38 38 7c 6c c6 c6 00 00 00 00
 00 00 18 db db db db db 7e 18 18 3c 00 00 00 00
 00 00 3c 66 c3 c3 c3 c3 c3 66 24 e7 00 00 00 00
 00 c3 18 18 18 18 18 18 18 18 18 18 00 00 00 00
 c3 00 66 66 66 66 3c 18 18 18 18 3c 00 00 00 00
 00 00 38 10 00 7b ce cc cc cc cc 7b 00 00 00 00
 00 00 38 10 00 7c c6 c0 78 c0 c6 7c 00 00 00 00
 00 00 38 10 00 dc 66 66 66 66 66 66 06 06 06 00
 00 00 38 10 00 18 18 18 18 18 18 0e 00 00 00 00
 00 18 c3 00 00 e7 66 66 66 66 66 3c 00 00 00 00
 00 00 00 00 00 7b ce cc cc cc cc 7b 00 00 00 00
 00 00 7c c6 c6 c6 c6 fc c6 c6 c6 fc c0 c0 c0 00
 00 00 00 00 00 c3 66 3c 18 3c 66 42 66 3c 00 00
 00 7c 60 30 18 78 cc cc cc cc cc 78 00 00 00 00
 00 00 00 00 00 7c c6 c0 78 c0 c6 7c 00 00 00 00
 00 00 fc 0c 18 30 60 c0 c0 c0 c0 78 0c 0c 78 00
 00 00 00 00 00 dc 66 66 66 66 66 66 06 06 06 00
 00 00 3e 63 63 63 7f 63 63 63 63 3e 00 00 00 00
 00 00 00 00 00 18 18 18 18 18 18 0e 00 00 00 00
 00 00 00 00 00 e6 6c 78 78 6c 66 e6 00 00 00 00
 00 00 38 6c 0c 0c 0c 36 66 66 66 66 00 00 00 00
 00 00 00 00 00 66 66 66 66 66 66 7f 60 60 60 00
 00 00 00 00 00 82 c6 c6 6c 6c 38 38 00 00 00 00
 00 00 fc 60 c0 78 30 60 c0 c0 c0 7c 06 06 3c 00
 00 00 00 00 00 7c c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 00 00 00 ff 66 66 66 66 66 66 00 00 00 00
 00 00 00 00 00 3c 66 66 66 66 66 7c 60 60 60 00
 00 00 00 00 00 3e 63 c0 c0 60 38 0c c6 7c 00 00
 00 00 00 00 00 7f cc cc cc cc cc 78 00 00 00 00
 00 00 00 00 00 7c 30 30 30 30 36 1c 00 00 00 00
 00 00 00 00 00 e7 66 66 66 66 66 3c 00 00 00 00
 00 00 00 00 00 5c d6 d6 d6 d6 d6 7c 10 10 10 00
 00 00 00 00 00 c6 6c 38 38 38 6c c6 00 00 00 00
 00 00 00 00 00 d6 d6 d6 d6 d6 d6 7c 10 10 10 00
 00 00 00 00 00 66 c3 c3 c3 db ff 66 00 00 00 00
 00 00 c3 00 00 18 18 18 18 18 18 0e 00 00 00 00
 00 00 c3 00 00 e7 66 66 66 66 66 3c 00 00 00 00
 00 00 38 10 00 7c c6 c6 c6 c6 c6 7c 00 00 00 00
 00 00 38 10 00 e7 66 66 66 66 66 3c 00 00 00 00
 00 00 38 10 00 66 c3 c3 c3 db ff 66 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00</textarea>
</body>
<script>

 

 

   // preenche as arrays de pontos
   // no caso, com letras

   x=[]
   y=[]
   z=[]

   linhas = document.getElementsByTagName(“textarea”)[0].value.split(“\n”)

   frase = “efeito 3d”

   for(h=0;h<frase.length;h++){
      caracter = linhas[frase.charCodeAt(h)].match(/[a-f0-9]{2}/gi)
      for(j=0;j<caracter.length;j++){
         n=parseInt(caracter[j],16)
         for(b=0;b<8;b++){
            s=n%2
            if(s){
               x[x.length]=(7-b)/8
               y[y.length]=j/caracter.length*2+4
               z[z.length]=0
            }
            n=(n-s)/2
         }
      }

      rotacao(0,0,15)

   }

 

   // girando a figura em 60 graus no eixo x
   // pra demostrar a rotação num eixo arbitrário

   cord = rotacao(60,0,0)

 

 

 

 

 

   // function plota pixel
   // com sombra!
   // a sombra tem que ser plotada atrás

   pixel = [];
   sombra = [];
   function plot(handler, x, y) {
      if (!pixel[handler]) {
         pixel[handler] = document.createElement(“div”);
         pixel[handler].style.width = 5;
         pixel[handler].style.height = 5;
         pixel[handler].style.position = “absolute”;
         pixel[handler].style.background = “green”;
         pixel[handler].style.zIndex = 1

         sombra[handler] = pixel[handler].cloneNode(true)
         sombra[handler].style.background = “black”;
         sombra[handler].style.opacity = .4;
         sombra[handler].style.zIndex = 0;

         document.body.appendChild(sombra[handler]);
         document.body.appendChild(pixel[handler]);
      }

      pixel[handler].style.left = x;
      pixel[handler].style.top = y;
      sombra[handler].style.left = x+2;
      sombra[handler].style.top = y+2;
   }

 

 

 

 

   // função que rotaciona os pontos
   // agora os de atribuição também.
   // dessa forma, na hora de atribuir pontos às matrizes
   // já posso fazê-lo numa determinada rotação

   function rotacao(ax,ay,az){

      radianosz = az/180*Math.PI
      radianosy = ay/180*Math.PI
      radianosx = ax/180*Math.PI

      cosx = Math.cos(radianosx)
      cosy = Math.cos(radianosy)
      cosz = Math.cos(radianosz)

      sinx = Math.sin(radianosx)
      siny = Math.sin(radianosy)
      sinz = Math.sin(radianosz)

      for (j = 0; j < x.length; j++) {

         tmpx = (x[j] * cosz – y[j] * sinz) * cosy – z[j] * siny
         tmpz = z[j] * cosy + (x[j] * cosz – y[j] * sinz) * siny

   z[j] = tmpz

         tmpy = (y[j] * cosz + x[j] * sinz) * cosx – z[j] * sinx
         tmpz = z[j] * cosx + (y[j] * cosz + x[j] * sinz) * sinx

         x[j] = tmpx
         y[j] = tmpy
   z[j] = tmpz
      }
   }

 

 

 

 

 

 
   // plota o conteúdo de x[], y[] e z[]
   // girando…
   // agora, num eixo arbitrário

   centrox = 500;
   centroy = 250;
   centroz = 0;

   setInterval(function(){
      // para girar num eixo arbitrário
      // segundo meu livro de compugrafia
      // primeiro gira-se  o objeto,
      // previamente girado num grau qualquer
      // para sua posição original
      // lá em cima haviamos alterado pra 60 graus no eixo x
      // agora tiramos isso

      cord = rotacao(-60,0,0)

 

      // agora,
      // com a imagem no eixo original
      // giro ela num eixo, no caso o z

      cord = rotacao(0,0,5)

 
   // agora eu devolvo a figura à sua posição original
   // que havia deixado no início do script

   cord = rotacao(60,0,0)

 
      // posso agora plotar essa bagaça

      for(i = 0; i < x.length; i++) {
         escala = (z[i]+15) * 5
         plot(i, x[i] * escala + centrox, y[i] * escala + centroy);
      }

 

 

   },10)

 
</script>
[/html]

Demo: http://byteblog.net/rotacao025a.htm



DEIXE UM COMENTÁRIO

Subscrever

Subscreve o Blog



Publicidade

Comentários Recentes

  • Jefferson Ferreira de brito: eu quero muito
  • thiago valente: Eu quero um para mim
  • Lucas martins balieiro: Eu não fiz o enem mesmo assim eu posso me inscrever no site essa é minha dúvida, só queme...
  • Francisca Marli Oliveira: quero saber quanto tenho no meu fgts
  • Santiago ribeiro de oliveira: Eu tô com carteira registrada eu tenho direito

Links

Leitores Recentes

VALE O CLIQUE!

Site Seguro Ocioso

Divulgue o blog Infomaroto em seu site e tenha seu link ou banner aqui.
Blog Infomaroto