Created
December 27, 2017 21:16
-
-
Save sonwh98/60b9eb9b3f3c32d61b3b358de96af579 to your computer and use it in GitHub Desktop.
clojurescript rotating cube with three.js
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
(ns red.cube | |
(:require [cljsjs.three])) | |
(defn draw-cube [] | |
(let [scene (js/THREE.Scene.) | |
camera (js/THREE.PerspectiveCamera. 75 (/ js/window.innerWidth js/window.innerHeight) 0.1 1000) | |
renderer (js/THREE.WebGLRenderer. #js{:antialias true}) | |
geometry (js/THREE.BoxGeometry. 1 1 1) | |
material (js/THREE.MeshBasicMaterial. #js{:color "#433F81"}) | |
cube (js/THREE.Mesh. geometry material) | |
render (fn myself [] | |
(js/requestAnimationFrame myself) | |
(let [x (.. cube -rotation -x) | |
y (.. cube -rotation -y)] | |
(set! (.. cube -rotation -x) (+ x 0.01)) | |
(set! (.. cube -rotation -y) (+ y 0.01))) | |
(.. renderer (render scene camera)))] | |
(set! (.. camera -position -z) 4) | |
(.. renderer (setClearColor "#000000")) | |
(.. renderer (setSize js/window.innerWidth js/window.innerHeight)) | |
(js/document.body.appendChild (.-domElement renderer)) | |
(.. scene (add cube)) | |
(render) | |
)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment