Редактирование: Планетарный поворотный механизм
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 8: | Строка 8: | ||
== Решение == | == Решение == | ||
− | {{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/MuschakND/48.7/48.7.html |width=900 |height=450 |border=0 }} | + | {{#widget:Iframe |url=http://tm.spbstu.ru:8090/ws-htmlets/MuschakND/48.7/48.7.html |width=900 |height=450 |border=0 }} |
Программа: [[Медиа:uy.zip|скачать]] | Программа: [[Медиа:uy.zip|скачать]] | ||
Строка 19: | Строка 19: | ||
{ | { | ||
var scene = new THREE.Scene(); | var scene = new THREE.Scene(); | ||
− | + | var camera = new THREE.PerspectiveCamera(45, window.innerWidth/window.innerHeight, 0.1, 1000); | |
− | + | var render = new THREE.WebGLRenderer(); | |
− | + | render.setClearColor(0xffffff, 1); | |
− | + | render.setSize(window.innerWidth, window.innerHeight); | |
Строка 116: | Строка 116: | ||
gui.add(controls,'Radius',1,15); | gui.add(controls,'Radius',1,15); | ||
− | |||
− | |||
− | var trajectoryGeometry = new THREE.SphereGeometry(0.05, | + | |
+ | var trajectoryGeometry = new THREE.SphereGeometry(0.05, 16, 16); | ||
var trajectoryMaterial = new THREE.MeshBasicMaterial( {color: 0x000000,wireframe:true} ); | var trajectoryMaterial = new THREE.MeshBasicMaterial( {color: 0x000000,wireframe:true} ); | ||
− | var trajectory1Geometry = new THREE.SphereGeometry(0.05, | + | var trajectory1Geometry = new THREE.SphereGeometry(0.05, 16, 16); |
var trajectory1Material = new THREE.MeshBasicMaterial( {color: 0x0000ff,wireframe:true} ); | var trajectory1Material = new THREE.MeshBasicMaterial( {color: 0x0000ff,wireframe:true} ); | ||
− | + | var stats = initStats(); | |
var step = 0; | var step = 0; | ||
Строка 134: | Строка 133: | ||
function renderer() | function renderer() | ||
{ | { | ||
− | + | stats.update(); | |
Строка 158: | Строка 157: | ||
line.rotation.y-=controls.rotationSpeed*0.3; | line.rotation.y-=controls.rotationSpeed*0.3; | ||
requestAnimationFrame(renderer); | requestAnimationFrame(renderer); | ||
− | |||
cylinder.scale.set(controls.Radius,1,controls.Radius); | cylinder.scale.set(controls.Radius,1,controls.Radius); | ||
Строка 185: | Строка 183: | ||
scene.add( trajectory1 ); | scene.add( trajectory1 ); | ||
render.render(scene,camera); | render.render(scene,camera); | ||
− | + | ||
} | } | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
this.addOrbit = function(pos, radius) | this.addOrbit = function(pos, radius) | ||
{ | { | ||
Строка 220: | Строка 211: | ||
} | } | ||
+ | } | ||
+ | function initStats() | ||
+ | { | ||
+ | var stats = new Stats(); | ||
+ | stats.setMode(0); | ||
+ | stats.domElement.style.position='absolute'; | ||
+ | stats.domElement.style.left = '0px'; | ||
+ | stats.domElement.style.top = '0px'; | ||
+ | $("#Stats").append(stats.domElement); | ||
+ | return stats; | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |