-
Notifications
You must be signed in to change notification settings - Fork 0
/
ARindexlaba1.html
74 lines (61 loc) · 2.72 KB
/
ARindexlaba1.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Fortress Scene</title>
<script src="https://aframe.io/releases/1.2.0/aframe.min.js"></script>
</head>
<body>
<a-scene arjs="sourceType: webcam; detectionMode: mono_and_matrix; matrixCodeType: 3x3;">
<!-- Додайте маркер доповненої реальності -->
<a-marker preset="custom" type="pattern" url="path/to/marker.patt">
<!-- Фортеця -->
<a-entity id="fortress" position="0 0 0">
<!-- Текстура цеглинок -->
<a-plane src="path/to/bricks.jpg" width="10" height="10"></a-plane>
</a-entity>
<!-- Прапор -->
<a-entity id="flag" position="0 4 0"></a-entity>
</a-marker>
<!-- Камера -->
<a-entity camera></a-entity>
</a-scene>
<script>
// Отримати посилання на елемент сцени з A-Frame
const scene = document.querySelector('a-scene');
// Функція для створення геометрії фортеці
function createFortressGeometry() {
const fortress = new THREE.Group();
// Додавання циліндрів, конусів, прямокутних паралелепіпедів, сфер до групи "fortress"
const cylinder = new THREE.Mesh(
new THREE.CylinderGeometry(radiusTop, radiusBottom, height, radialSegments),
new THREE.MeshBasicMaterial({ color: 0x808080 }) // Налаштування кольору циліндра
);
fortress.add(cylinder);
const cone = new THREE.Mesh(
new THREE.ConeGeometry(radius, height, radialSegments),
new THREE.MeshBasicMaterial({ color: 0x808080 }) // Налаштування кольору конуса
);
cone.position.set(x, y, z);
fortress.add(cone);
// Додайте решту геометрій фортеці за необхідністю
return fortress;
}
// Функція для створення геометрії прапора
function createFlagGeometry() {
const flag = new THREE.Mesh(
new THREE.PlaneGeometry(width, height),
new THREE.MeshBasicMaterial({ color: 0xFF0000 }) // Налаштування кольору прапора
});
return flag;
}// Створення фортеці
const fortress = createFortressGeometry();
scene.appendChild(fortress);
// Створення прапора
const flag = createFlagGeometry();
fortress.add(flag);
// Анімація прапора
flag.setAttribute('animation', 'property: position; from: 0 4 0; to: 0 10 0; dur: 2000; easing: linear; loop: true;');
</script>
</body>
</html>