Редактирование: Мещерский Задача 8.40

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 11: Строка 11:
 
[[File:DavA2.bmp]]
 
[[File:DavA2.bmp]]
  
{{#widget:Iframe |url=http://tm.spbstu.ru/htmlets/DavydovaA/Kartina/Mesherskiy1.html |width=1000 |height=830 |border=0 }}
+
{{#widget:Iframe |url=http://tm.spbstu.ru:8090/ws-htmlets/DavydovaA/Kartina/Mesherskiy1.html |width=1000 |height=830 |border=0 }}
 
 
<div class="mw-collapsible mw-collapsed" style="width:100%" >
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
 
 
<!DOCTYPE html>
 
 
 
<html>
 
  <script src = "http://tm.spbstu.ru/htmlets/DavydovaA/Kartina/three.js" >
 
</script>
 
<script src = "http://tm.spbstu.ru/htmlets/DavydovaA/Kartina/stats.min.js" >
 
</script>
 
<script src = "http://tm.spbstu.ru/htmlets/DavydovaA/Kartina/OrbitControls.js" >
 
</script>
 
<script src = "http://tm.spbstu.ru/htmlets/DavydovaA/Kartina/dat.gui.js" >
 
</script>
 
<style>
 
body
 
{
 
margin:0;
 
overflow:hidden;
 
}
 
</style>
 
 
</head>
 
<body>
 
 
<div id = "WebGL"> </div>
 
<div id="WebGL-output"> </div>
 
<div id = "Stats-output"> </div>
 
 
<script type="text/javascript">
 
var renderer,scene,camera,stats,sphere,cube,controls,control,spotLight, torus, torusM;
 
var allowHelper1,allowHelper2,allowHelper3,allowHelper4,allowHelper5,allowHelper6,allowHelper7;
 
var step = 0;
 
scene = new THREE.Scene();
 
camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000);
 
renderer = new THREE.WebGLRenderer();
 
 
renderer.setClearColor(0xEEEEEE, 1.0);
 
renderer.setSize(window.innerWidth, window.innerHeight);
 
renderer.shadowMap.Enabled = true;
 
 
var M = 20;
 
var g = 10;
 
var L = 0.6;
 
var H = 0.75;
 
var tg = 0.75;
 
var Lsh = 0.85;
 
var N = 0;
 
var Nx = 0;
 
var Ny = 0;
 
var T = 0;
 
var delth = 0;
 
var Picture;
 
var Line2;
 
var AH1;
 
var AH2;
 
var AH3;
 
var AH4;
 
var AH5;
 
var AH6;
 
var AH7;
 
 
function physics()
 
{
 
D=(Math.sqrt(Lsh*Lsh-L*L))/2;
 
Dpr = 0.3*H;
 
dh = Math.sqrt(D*D-Dpr*Dpr);
 
sinAl = 2*D/Lsh;
 
sinB = dh/D;
 
cosB = Dpr/D;
 
sinFi = 0.8*cosB+0.6*sinB;
 
T = 0.3*M*g/(sinFi*sinAl);
 
Nx = T*sinAl*cosB;
 
Ny = M*g/2 +-T*sinAl*sinB;
 
N=0.5*Math.sqrt(Nx*Nx+Ny*Ny)
 
console.log (T,' ',Nx,' ',Ny);
 
controls.result_Nx = Nx;
 
controls.result_Ny = Ny;
 
controls.result_T  = T;
 
delth=dh;
 
}
 
 
 
 
function rewrite()
 
{
 
M = controls.Mass;
 
L = controls.Length;
 
H = 0.75;
 
tg = 0.75;
 
Lsh = 0.85;
 
physics();
 
}
 
 
function init()
 
{
 
 
var axes = new THREE.AxisHelper( 20 );
 
scene.add(axes);
 
scene.add(camera);
 
 
//document.body.appendChild( renderer.domElement );
 
 
var polGeometry = new THREE.PlaneGeometry(50,15,1,1);
 
var polMaterial = new THREE.MeshLambertMaterial({color:0xDAA520 }); //0xcccccc
 
var pol = new THREE.Mesh(polGeometry,polMaterial);
 
pol.rotation.x=-0.5*Math.PI;
 
pol.position.x = 0;
 
pol.position.y = 0;
 
pol.position.z = 7.5;
 
pol.receiveshadow = true;
 
scene.add(pol);
 
 
//wall1
 
//var wall1Geometry = new THREE.PlaneGeometry(50,20,1,1)
 
/*var wall1Material = new THREE.MeshBasicMaterial({color:0xFFFACD})
 
var wall1 = new THREE.Mesh(wall1Geometry,wall1Material);
 
wall1.position.y =10;
 
//scene.add(wall1);*/
 
 
//wall
 
var wallG = new THREE.BoxGeometry(50,20,2);
 
var wallM = new THREE.MeshLambertMaterial({color: 0xFFFACD});
 
wall = new THREE.Mesh(wallG,wallM);
 
wall.castShadow = true;
 
wall.position.z = 0;
 
wall.position.y = 10;
 
scene.add(wall);
 
 
 
var spotLight = new THREE.SpotLight( 0xffffff );
 
spotLight.position.set( 60, 60, 70 );
 
spotLight.castShadow = true;
 
scene.add( spotLight );
 
 
camera.position.x = -30;
 
camera.position.y = 40;
 
camera.position.z = 30;
 
camera.lookAt(scene.position);
 
document.getElementById("WebGL").appendChild(renderer.domElement);
 
 
control = new THREE.OrbitControls(camera,renderer.domElement);
 
 
controls = new function()
 
{
 
this.Mass = M;
 
this.Length = L;
 
this.Height = H;
 
this.result_Nx = Nx;
 
this.result_Ny = Ny;
 
this.result_T= T;
 
//this.Height = ambiColor;
 
}
 
var gui = new dat.GUI();
 
var contr = gui.addFolder('Controls');
 
contr.add(controls,'Mass',0,50).onChange(rewrite);
 
contr.add(controls,'Length',0,0.71).onChange(rewrite);
 
 
 
                                var resalt = gui.addFolder('Result');
 
resalt.add(controls,'result_Nx').listen();
 
resalt.add(controls,'result_Ny').listen();
 
resalt.add(controls,'result_T').listen();
 
//gui.add.onChange()(physics,'Height',0,1);
 
 
 
stats = initStats();
 
renderScene();
 
}
 
 
window.onload = init();
 
window.addEventListener('resize',onResize,false);
 
 
function ClearScene()
 
{
 
scene.remove(Picture);
 
scene.remove(Line2);
 
scene.remove(AH1);
 
scene.remove(AH2);
 
scene.remove(AH3);
 
scene.remove(AH4);
 
scene.remove(AH5);
 
scene.remove(AH6);
 
scene.remove(AH7);
 
}
 
 
function renderScene()
 
{
 
stats.update();
 
 
ClearScene();
 
 
physics();
 
 
var lineGeometry = new THREE.Geometry();//Производная фигура
 
lineGeometry.vertices.push(new THREE.Vector3(-5*L,10,(1+3*H)));//Указываем вектор первой точки
 
lineGeometry.vertices.push(new THREE.Vector3(0, 10*delth+10+4*H, 1));//Указываем вектор второй точки
 
lineGeometry.vertices.push(new THREE.Vector3(5*L,10,(1+3*H)));
 
var lineMaterial = new THREE.LineBasicMaterial({color:0xFFFFFF, linewidth:500});
 
var line = new THREE.Line(lineGeometry, lineMaterial);//Создаем линию из созданной геометрии
 
scene.add(line);
 
Line2=line;
 
 
var pictG = new THREE.BoxGeometry (L*10,H*10,0.5);
 
var texture = THREE.TextureLoader('iskushenie-sviatogo-antoniya.jpg');
 
//texture.repeat.set( 1, 1 );
 
var pictM1 = new THREE.MeshLambertMaterial();//( {map: texture} );
 
//var pictM2 = new THREE.MeshLambertMaterial({color:0xDAA520 });
 
//var pictMaterials =[];
 
var pict = new THREE.Mesh(pictG,pictM1);
 
pict.position.x = 0;
 
pict.position.y = 10;
 
pict.position.z = 3.5;
 
pict.rotation.x = Math.atan(0.75);
 
scene.add(pict);
 
Picture = pict;
 
 
var dir = new THREE.Vector3( 0, 0, 1 );
 
var origin = new THREE.Vector3( L*5, 10-H*4, 1.1 );
 
arrowHelper1 = new THREE.ArrowHelper(dir, origin, Nx/30, 0xFF1493);
 
scene.add( arrowHelper1 );
 
AH1=arrowHelper1
 
 
 
dir = new THREE.Vector3( 0, 1, 0 );
 
origin = new THREE.Vector3( L*5, 10-H*4, 1.1 );
 
arrowHelper2 = new THREE.ArrowHelper(dir, origin, Ny/30, 0xFF8010);
 
scene.add( arrowHelper2 );
 
AH2=arrowHelper2;
 
 
 
dir = new THREE.Vector3(-5*L, 10*delth+4*H, 1-(1+3*H)).normalize();
 
origin = new THREE.Vector3(5*L,10,(1+3*H));
 
arrowHelper3 = new THREE.ArrowHelper(dir, origin, T/30, 0xFF1493, 0.40 , 0.40);
 
scene.add( arrowHelper3 );
 
AH3=arrowHelper3;
 
 
dir = new THREE.Vector3(5*L, 10*delth+4*H, 1-(1+3*H)).normalize();
 
origin = new THREE.Vector3(-5*L,10,(1+3*H));
 
arrowHelper6 = new THREE.ArrowHelper(dir, origin, T/30, 0xFF1493, 0.40 , 0.40);
 
scene.add( arrowHelper6 );
 
AH6=arrowHelper6;
 
console.log(dir);
 
 
dir = new THREE.Vector3( 0, 0, 1 );
 
origin = new THREE.Vector3( -L*5, 10-H*4, 1.1 );
 
arrowHelper4 = new THREE.ArrowHelper(dir, origin, Nx/30, 0xFF1493);
 
scene.add( arrowHelper4 );
 
AH4=arrowHelper4;
 
 
 
dir = new THREE.Vector3( 0, 1, 0 );
 
origin = new THREE.Vector3( -L*5, 10-H*4, 1.1 );
 
arrowHelper5 = new THREE.ArrowHelper(dir, origin, Ny/30, 0xFF8010);
 
scene.add( arrowHelper5 );
 
AH5=arrowHelper5;
 
 
 
 
//step+=controls.bouncingSpeed;
 
requestAnimationFrame(renderScene);
 
renderer.render(scene,camera);
 
 
}
 
 
function onResize()  //moving of camera
 
{
 
camera.aspect = window.innerWidth/window.innerHeight;
 
camera.updateProjectionMatrix();
 
renderer.setSize(window.innerWidth,window.innerHeight);
 
}
 
 
function render()
 
{
 
stats.update();
 
requestAnimationFrame( render );
 
renderer.render( scene, camera );
 
}
 
 
function initStats() //window in the left corner
 
{
 
stats  = new Stats();
 
stats.setMode(0);
 
stats.domElement.style.position = '0px';
 
stats.domElement.style.left = '0px';
 
stats.domElement.style.top = '0px';
 
document.getElementById("Stats-output").appendChild(stats.domElement);
 
//renderer.shadowMap.Enabled = true;
 
return stats;
 
}
 
render();
 
 
function onResize()  //moving of camera
 
{
 
camera.aspect = window.innerWidth/window.innerHeight;
 
camera.updateProjectionMatrix();
 
renderer.setSize(window.innerWidth,window.innerHeight);
 
}
 
 
 
 
</script>
 
</body>
 
</html>
 
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)