当前位置:网站首页>Three. JS introductory learning notes 00: coordinate system, camera (temporarily understood)
Three. JS introductory learning notes 00: coordinate system, camera (temporarily understood)
2022-07-07 15:48:00 【Jiang Duoduo_ Mostly Harmless 】
I didn't understand some problems in learning orthographic camera thoroughly , Sort out the temporary understanding here , I'll fix it later , Xiaobai is one , If you have any mistakes, please correct them .
One . Coordinate system
The world coordinate system is the right-hand coordinate system ,X Forward right ,Y The shaft is upward ,Z The axis extends from the inside of the screen to the outside .
Rotate around the axis
The thumb points in the positive direction of the rotation axis , The direction of four fingers bending is the positive direction of rotation
cube.rotaion.y -= 0.01; // radian
Local coordinates
The coordinates of the object , At the center of the object .
Auxiliary coordinate axes can be added
var axisHelper = new THREE.AxisHelper(4);
axisHelper.rotation.y -=0.01;// Axis rotation
scene.add(axisHelper)
blue :z Axis
red :x Axis
green :y Axis
Two . Camera location
The camera defaults to the origin of the coordinate system , Look at Z Axis negative half axis
camera.postion: Where the camera is , The default is (0,0,0)
camera.lookAt: Camera focus direction , The default is Z Axis negative half axis direction
Focus the camera on a certain point
camera.lookAt(new THREE.Vector3(x,y,z))
The camera tracks an object
camera.lookAt(mesh.position)
orthogonal
The six parameters represent the positions of the six planes captured by the orthogonal projection camera .
among ,near Indicates the vertical distance between the near plane and the center point of the camera ;far Indicates the vertical distance between the far plane and the center point of the camera .
perspective
3、 ... and . Location relationship
<script type="text/javascript">
//renderer
var renderer = new THREE.WebGLRenderer();
renderer.setSize(400, 300);
canvas, No more definition canvas Elements
document.getElementsByTagName("body")[0].appendChild(renderer.domElement);
//scene
var scene = new THREE.Scene();
//camera
var camera = new THREE.OrthographicCamera(-2, 2, 1.5, -1.5, 1, 10);
camera.position.set(0, 0, 5);
scene.add(camera);
//cube
var cube = new THREE.Mesh(new THREE.CubeGeometry(1, 1, 1),
new THREE.MeshBasicMaterial({
color: 0xff0000,
wireframe:true
})
);
scene.add(cube);
//render
//renderer.render(scene, camera);
function animate(){
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
renderer.render( scene, camera);
requestAnimationFrame( animate );
}
animate();
</script>
I understand the positional relationship of the above code , I don't know if it's right
Blue numbers are length , Black numbers are coordinates
example
camera.position.set(0,0,100)//set(x,y,z)
camera.lookAt(new THREE.Vector3(0, 0, 0));
var cube = new THREE.Mesh(geometry, material);
cube.position.set(0, 0, -100);
The camera is located at Z In the positive direction of the axis , The camera defaults to the origin , Look at Z Negative axis .
therefore ,cube The coordinates are z Negative axis , Can be seen by camera ,
If you set cube.position.set(0, 0, 200);
You can't see objects .
It can be done by camera.position.z And cube.position.z Change the size of the object you see
Reference Content :
Camera understanding
https://blog.csdn.net/qq_42206266/article/details/80566992
Axis
https://blog.csdn.net/weixin_33910385/article/details/88853253
https://blog.csdn.net/cvchihzhza/article/details/80141344
https://blog.csdn.net/qq_42206266/article/details/80566992
The camera
https://blog.csdn.net/a13602955218/article/details/85222815
three.js The camera camera Attribute resolution
https://www.jianshu.com/p/cacd4a035b85
visual angle
https://www.iteye.com/blog/fqg05-1947139
Point line surface
https://yq.aliyun.com/articles/687186
Perspective camera
https://www.cnblogs.com/xulei1992/p/5709677.html
Position of camera and object
https://blog.csdn.net/tjj3027/article/details/81976661
边栏推荐
- C Alibaba cloud OSS file upload, download and other operations (unity is available)
- ./ Functions of configure, make and make install
- How to understand that binary complement represents negative numbers
- Excerpted words
- 【數字IC驗證快速入門】20、SystemVerilog學習之基本語法7(覆蓋率驅動...內含實踐練習)
- 避坑:Sql中 in 和not in中有null值的情况说明
- 从 1.5 开始搭建一个微服务框架链路追踪 traceId
- How to release NFT in batches in opensea (rinkeby test network)
- When opening the system window under UE4 shipping, the problem of crash is attached with the plug-in download address
- Unity之ASE实现全屏风沙效果
猜你喜欢
【數據挖掘】視覺模式挖掘:Hog特征+餘弦相似度/k-means聚類
20th anniversary of agile: a failed uprising
Actually changed from 408 to self proposition! 211 North China Electric Power University (Beijing)
AB package details in unity (super detail, features, packaging, loading, manager)
It's different for rich people to buy a house
[quick start of Digital IC Verification] 24. AHB sramc of SystemVerilog project practice (4) (AHB continues to deepen)
Zhongang Mining: Fluorite continues to lead the growth of new energy market
HW primary flow monitoring, what should we do
2. 堆排序『较难理解的排序』
Introduction of mongod management database method
随机推荐
Ue4/ue5 multi thread development attachment plug-in download address
【数字IC验证快速入门】24、SystemVerilog项目实践之AHB-SRAMC(4)(AHB继续深入)
Super simple and fully automated generation super signature system (cloud Xiaoduo minclouds.com cloud service instance), free application in-house test app distribution and hosting platform, maintenan
Detailed explanation of unity hot update knowledge points and introduction to common solution principles
2. 堆排序『较难理解的排序』
【数字IC验证快速入门】23、SystemVerilog项目实践之AHB-SRAMC(3)(AHB协议基本要点)
Keil5 does not support online simulation of STM32 F0 series
Syntax of generator function (state machine)
Steps to create P8 certificate and warehousing account
The difference between full-time graduate students and part-time graduate students!
[quick start of Digital IC Verification] 18. Basic grammar of SystemVerilog learning 5 (concurrent threads... Including practical exercises)
numpy--疫情数据分析案例
有钱人买房就是不一样
Use cpolar to build a business website (2)
HW primary flow monitoring, what should we do
Wechat applet 01
Webgl texture
STM32F103C8T6 PWM驱动舵机(SG90)
C Alibaba cloud OSS file upload, download and other operations (unity is available)
[quick start of Digital IC Verification] 26. Ahb-sramc of SystemVerilog project practice (6) (basic points of APB protocol)