Search this site
Embedded Files
ZFRUT
  • Home
  • Over
  • Projectpagina
  • gtp
ZFRUT
  • Home
  • Over
  • Projectpagina
  • gtp
  • More
    • Home
    • Over
    • Projectpagina
    • gtp

https://acrobat.adobe.com/link/review?uri=urn:aaid:scds:US:eab58e09-fcb7-4578-8995-2ecb5163d9be


//<!DOCTYPE html>

//<html>

//<head>

// <title>OpenGL Tree with Clickable Leaves</title>

// <style>

// canvas { display: block; }

//:</style>

//</head>//

<body>

<h1>OpenGL Tree with Clickable Leaves</h1>

<canvas id="glcanvas" width="640" height="480"></canvas>

<script src="https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.8.1/gl-matrix-min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/webgl-utils/2.0.0/webgl-utils.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>

<script>

// Set up the WebGL context and the Three.js scene

const canvas = document.getElementById("glcanvas");

const gl = canvas.getContext("webgl");

const scene = new THREE.Scene();

const camera = new THREE.PerspectiveCamera(75, canvas.width / canvas.height, 0.1, 1000);

const renderer = new THREE.WebGLRenderer({canvas: canvas});

renderer.setSize(canvas.width, canvas.height);

// Add a tree to the scene

const treeGeometry = new THREE.CylinderGeometry(0, 10, 50, 8);

const treeMaterial = new THREE.MeshBasicMaterial({color: 0x00ff00});

const tree = new THREE.Mesh(treeGeometry, treeMaterial);

scene.add(tree);

// Add clickable leaves to the tree

const leafGeometry = new THREE.SphereGeometry(5, 8, 8);

const leafMaterial = new THREE.MeshBasicMaterial({color: 0xff0000});

for (let i = 0; i < 8; i++) {

const leaf = new THREE.Mesh(leafGeometry, leafMaterial);

leaf.position.set(Math.sin(i * Math.PI / 4) * 20, 25, Math.cos(i * Math.PI / 4) * 20);

leaf.name = "leaf" + i;

scene.add(leaf);

}

// Add event listeners to the leaves

canvas.addEventListener("click", function(event) {

const raycaster = new THREE.Raycaster();

const mouse = new THREE.Vector2();

mouse.x = (event.clientX / canvas.width) * 2 - 1;

mouse.y = -(event.clientY / canvas.height) * 2 + 1;

raycaster.setFromCamera(mouse, camera);

const intersects = raycaster.intersectObjects(scene.children, true);

for (let i = 0; i < intersects.length; i++) {

if (intersects[i].object.name.startsWith("leaf")) {

window.open("https://www.example.com/" + intersects[i].object.name + ".html");

}

}

});

// Render the scene

camera.position.z = 100;

function animate() {

requestAnimationFrame(animate);

tree.rotation.y += 0.01;

renderer.render(scene, camera);

}

animate();

</script>

//</body>

//</html>//


Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse