Форум программистов, компьютерный форум, киберфорум
JavaScript: HTML5 Canvas
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 49
1

Three js, откуда взялась переменная length?

11.05.2018, 21:49. Показов 572. Ответов 4
Метки нет (Все метки)

Вот собственно и весь вопрос. Необъявленная переменная length, да еще и передается как параметр на переменную move.
Я начинающий в Three JS, пытаюсь разобраться в коде. Java бы давно начала ругаться на необъявленную переменную, а этот код работает.
Код рисует кривую Коха, "черепашку".


PHP/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
75
76
<html>
<head>
    <title>My first three.js app</title>
    <style>
    body { margin: 0; }
    canvas { width: 100%; height: 100% }
</style>
</head>
<body>
    <script src="three.js"></script>
    <script>
        var scene = new THREE.Scene();
        var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
 
        var renderer = new THREE.WebGLRenderer();
        renderer.setSize( window.innerWidth, window.innerHeight );
        document.body.appendChild( renderer.domElement );
 
        camera.position.z = 10;
 
        //Darstellung der Turtle
        var turtle = new THREE.Object3D();
        turtle.matrixAutoUpdate = false;
        console.log( turtle.matrix.clone() );
 
        var move = function (length) {
            var geometry = new THREE.BoxGeometry( length, length/5, length/5 );
            var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
            var cube = new THREE.Mesh( geometry, material );
 
            turtle.matrix.multiply( new THREE.Matrix4().makeTranslation( length/2, 0, 0 ) );
 
            cube.position.set(turtle.matrix.elements[12], turtle.matrix.elements[13], turtle.matrix.elements[14] );
            cube.setRotationFromMatrix( turtle.matrix );
            cube.updateMatrix();
 
            scene.add( cube );
            console.log( turtle.matrix.clone() );
            turtle.matrix.multiply( new THREE.Matrix4().makeTranslation( length/2, 0, 0 ) );
        };
 
        var turn = function (angle) {
            turtle.matrix.multiply( new THREE.Matrix4().makeRotationZ( angle ) );
        };
 
            //Zeichnen der Grundkurve
            var koch = function (length, n) {
                if (n == 0) {
                    move(length);
                }
                else {
                koch( length/3, n-1 );
                turn( Math.PI/3 );
                koch( length/3, n-1 );
                turn( -2*Math.PI/3 );
                koch( length/3, n-1 );
                turn( Math.PI/3 );
                koch( length/3, n-1 ); 
                }
            };
 
            koch(10,4);
 
            var animate = function () {
                requestAnimationFrame( animate );
 
                //cube.rotation.x += 0.1;
                //cube.rotation.y += 0.1;
 
                renderer.render(scene, camera);
            };
 
            animate();
        </script>
    </body>
    </html>
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2018, 21:49
Ответы с готовыми решениями:

Откуда взялась рамка?
Рамку видно глазами, а в инструментах разработчика её нет. Рамка вокруг элемента .product.large...

Откуда взялась энергия
Как известно ничего не берётся из ниоткуда. А откуда же изначально взялась энергия? Например...

Откуда взялась единица?
На странице index.php, содержащей произвольный код, добавляю header вот так: &lt;?php echo...

Откуда взялась картинка?
Доьрое время суток! Установил вчеиа майбь последней вермии. При регистрации картинка против...

4
502 bad gateway
Эксперт PHP
4574 / 3720 / 1556
Регистрация: 24.04.2014
Сообщений: 10,931
11.05.2018, 22:10 2
На какой строке используется необъявленная переменная length?
0
dev - investigator
Эксперт JSЭксперт HTML/CSS
2137 / 1483 / 650
Регистрация: 16.04.2016
Сообщений: 3,694
12.05.2018, 01:34 3
Jewbacabra, он походу просто пропустил глазами, что length в строке 26 - входной параметр.
0
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 49
13.05.2018, 14:56  [ТС] 4
Нет, не пропустил. Меня озадачивает - откуда взялась, где она объявлена и чему равна?

А также angle в строке 42 и n в строке 47 ??
0
dev - investigator
Эксперт JSЭксперт HTML/CSS
2137 / 1483 / 650
Регистрация: 16.04.2016
Сообщений: 3,694
13.05.2018, 15:22 5
Silury,
Цитата Сообщение от Silury Посмотреть сообщение
откуда взялась, где она объявлена и чему равна?
да нигде она не объявлена, это параметр ф-ии, он в объявлении не нуждается. Интерпретатор при объявлении функции создает из параметров в объявлении временные ссылки и сам их контролит. Они не Ваша забота.
Вот мы объявляем ф-ю:
Javascript
1
function blabla(param){alert(param)}
С этого момента забудьте про param
А вот мы ее используем.
Javascript
1
var x=1; blabla(x)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2018, 15:22

Помощь в написании контрольных, курсовых и дипломных работ здесь.

MSysCompactError откуда она взялась?
есть БД Access на диске D:\BD.mdb. при работе с ней создается таблица MSysCompactError. Далее не...

Пожалуйста, объясните, откуда взялась 1/2
Всем приветик) Всегда, когда я что-то решаю, и если есть возможность проверить правильный ли мой...

Откуда в уравнении взялась единица?
Есть уравнение по вычислению остатка от деления (см скрин). Вопрос: Каким образом была получена...

Не могу понять откуда взялась цифра!
Добрый день! Пытаюсь разобраться с задачей способом симплекс-метод, никак не пойму откуда взялась...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.