美女扒开腿免费视频_蜜桃传媒一区二区亚洲av_先锋影音av在线_少妇一级淫片免费放播放_日本泡妞xxxx免费视频软件_一色道久久88加勒比一_熟女少妇一区二区三区_老司机免费视频_潘金莲一级黄色片_精品国产精品国产精品_黑人巨大猛交丰满少妇

代做COMP27112、代寫Java語言程序

時(shí)間:2024-03-08  來源:  作者: 我要糾錯(cuò)



Introduction to Visual Computing
Coursework Assignment 2
Sun, Planet and Moon
Tim Morris
Introduction
The aim of this exercise is to render a simple solar system with one moon orbiting one
planet orbiting one sun. As with the previous exercise, you’ll need a web browser to display
the output and a simple text editor1 to create the html file you’ll need.
This piece of work contributes half of the coursework assessment. We suggest that you
should not spend more than 15 hours in total completing Assignments 1 and 2.
Getting Started
Start off with the same code as last time for creating the basic webpage. Under “// Your
Javascript will go here.” you’ll add any global variables and calls to two
functions, init() and animate().
Creating the Scene (init();)
Everything is initialised in this function.
As before, add a scene, camera and renderer and add the renderer to the
document (don’t forget to declare the scene, camera and renderer as global
variables). You won’t need a vertex shader or fragment shader this time.
Put the far plane of the camera at 10000. Locate the camera at (0, 30, 500) and add it to the
scene.
You’ll need to create nine variables for the sun’s, earth’s and moon’s geometries, materials
and meshes. These are global variables.
You can create the sun object using the following code:
1 You should ensure that your text editor saves your html files as plain text. Some editors (e.g. TextEdit on the
Mac add all kinds of stuff to what you think is a plain html file, meaning that you just see the text of your file
when you open it in your browser. Don’t forget to give your files the correct extension.
You could also use a suitable IDE.
sunGeometry = new THREE.SphereGeometry(109, 400, 200);
sunMaterial = new THREE.MeshStandardMaterial(
 {
 emissive: 0xffd700,
// emissiveMap: texture,
 emissiveIntensity: 1,
 wireframe: false
 }
);
sunMesh = new THREE.Mesh(sunGeometry, sunMaterial);
scene.add(sunMesh);
This creates a spherical object (what do the arguments mean?) of a particular colour. Where
is it located? The emissiveMap is something you may use later.
The sun must be a source of light. The PointLight() constructor can achieve this.
Create a point light source of white light at the origin and add it to the scene. You might also
add a diffuse light to give some background illumination, use AmbientLight().
Obviously this is physically unrealistic but it makes the objects more visible.
You can create the earth and moon using similar code with the following differences:
• The earth sphere geometry arguments are 25, 50, 50
• The moon sphere geometry arguments are 5, 40, 20
• Both the earth and moon materials are MeshPhongMaterial, they don’t have an
emissive argument, but do have a color. You can experiment with color
values.
The texture argument might be used later. So the earthMaterial can be created
using something like:
earthMaterial = new THREE.MeshPhongMaterial(
 {
// map: texture,
 color: x0000ff
 }
The earth and moon will be grouped together into one object before being added to the
scene. To do this we need a global variable to store the earth-moon system, we need to
add the earth to it, by default it will go to the origin of this system. Then we need to add the
moon to the system and set its position relative to the earth.
Three.js provides a group object for storing collections:
earthSystem = new THREE.Group();
Then the earth (and moon) can be added to this in a manner that was similar to the way we
added the sun to the scene:
earthSystem.Add(earthMesh);
Don’t forget to set the position of the moon within the earth-moon system, using a function
something like:
moonMesh.position.set(orbitRadius, 0, 0);
A suitable value for orbitRadius is in the range 40 – 60.
The earth’s orbit could be approximated as a circle, and the location of the earth on it could
be computed as the following pseudocode:
earth.position.x = earthOrbitRadius * sin(2pwt);
earth.position.y = earthOrbitRadius * cos(2pwt);
w is the earth’s angular velocity and t is some measurement of time.
It is slightly more realistic to make the orbit an ellipse. To make this more efficient we precompute the co-ordinates of the earth’s orbit. Create a global variable with a suitable name.
The points can be computed by calling the function EllipseCurve. This has arguments
to define:
• The x co-ordinate of the centre point of the ellipse
• The y co-ordinate of the centre point of the ellipse
• The radius of the ellipse in the x direction
• The radius of the ellipse in the y direction
• The start angle for drawing the ellipse (in this case 0 radians)
• The end angle for drawing the ellipse (in this case 2p radians)
• Plus other arguments that can take default values.
You may choose to draw the orbit, in which case you will have to
• Transfer points from the orbit into a line buffer
• Create a geometry (using BufferGeometry) from these points
• Create a material (using LineBasicMaterial) and setting a suitable colour
• Create a line object using the geometry and material
• Rotate the line so it lies in the XZ plane instead of the default XY plane
• Add it to the scene
Animation (Animate();)
The basic animation function will contain the two lines to render the scene and request an
animation frame, as in the previous exercise. If you’ve followed the instructions so far and
now implement this, you’ll see a static scene with the sun, earth and moon in fixed positions
and the earth orbit (if you chose to draw it). The earth and moon should be solid coloured
spheres. The next step is to add movement to the objects. The following code should be
added to Animate() before the two lines you’ve just written.
The sun’s movement is simple. It doesn’t move. You might want to make it rotate if you add
a texture to it, which will be done later.
The earth-moon system’s position could be driven by using a counter that is incremented
for each frame of the animation. But we’ll use the time instead. A time can be obtained by
calling performance.now(). This gives the time in milliseconds since the browser
window was opened. This can be converted into a value in the range [0, 1) which will be
used as an index into the values of the EllipseCurve you defined earlier. In
pseudocode:
time = 0.00001 * performance.now();
t = (time mod 1)
We can get the earth-moon position by reading a point from the EllipseCurve object
(assume it’s called curve):
point = curve.getPoint(t)
Then the earthSystem’s x and z positions can be set to point.x and point.y
respectively. Changing the value of the multiplier (0.00001) will change the earth’s orbital
speed.
The moon’s position is set according to
moon.x = orbitRadius*cos(time*speed)
moon.z = orbitRadius*sin(time*speed)
Time was derived above. Speed is the orbital speed of the moon – you choose a sensible
value.
Optional Enhancements
Some optional enhancements follow.
Changing the viewpoint
It is possible to change the observer’s viewpoint by adding the following controls.
Insert the following line after the other import statement.
import { OrbitControls } from
"https://web.cs.manchester.ac.uk/three/three.jsmaster/examples/jsm/controls/OrbitControls.js";
Add a global variable with a suitable name, possibly controls.
Add the following two lines to the init() function:
controls = new OrbitControls(camera, renderer.domElement);
controls.autoRotate = true;
These add a controller to the scene and allow you to move the viewpoint by clicking and
dragging.
Texturing
The sun, earth and moon can be textured using textures from
https://www.solarsystemscope.com/textures/download/2k_sun.jpg
https://upload.wikimedia.org/wikipedia/commons/a/ac/Earthmap1000x500.jpg
https://svs.gsfc.nasa.gov/vis/a000000/a004700/a004720/lroc_color_poles_1k.jpg
To read these you’ll have to create one texture loader
const loader = new THREE.TextureLoader();
Textures can be loaded using this
var texture = loader.load(‘filename’); OR
var texture = loader.load(‘URL’);
And added to the material of the object you’re creating, by uncommenting the line in the
example above where you created the sun object.
The earth and moon textures can be added similarly, except you’ll add the line
map: texture,
to the material constructor. You’ll also need to delete the color property.
The problem you may encounter when attempting to run the code is that the resource fails
to load, and you have an error message such as
Access to image at <source> from origin 'null' has been blocked by CORS policy
This is a security feature of most modern browsers. You can set up a server on your host to
overcome this problem. Instructions are widely available on the web, specifically here
https://threejs.org/docs/index.html#manual/en/introduction/How-to-run-things-locally
If you’re using Chrome you can alternatively install an extension that allows CORS cross
origin loading (https://chrome.google.com/webstore/detail/allow-cors-accesscontrol/lhobafahddgcelffkeicbaginigeejlf?hl=en). Or in Safari you can explicitly turn off the
CORS checking.
Rotations
You can make the sun, Earth and Moon rotate on their axes, much like the cube rotated in
the previous exercise. Make sure you choose an appropriate length of the “day”.
Clouds
You could add clouds to the Earth. Find a cloud image (e.g.
https://i.stack.imgur.com/B3c7G.jpg) and add it as a transparent texture to a sphere mesh
that is slightly larger than the Earth. Make it rotate slightly slower than the Earth.
Background
You can also create a starry background for the scene. Make a very large sphere mesh – to
make sure it’s big enough to contain everything. Add a texture image of the Milky Way:
https://cdn.eso.org/images/screen/eso0932a.jpg
Make the sphere visible from inside as well as outside by setting the side member of the
material to THREE.DoubleSide.
Submission
Once you have a working solution, capture a short video of your solution, no more than 15
seconds long. It must demonstrate all the properties of your solar system, and not so
quickly that the marker can’t see them clearly (you’ll be penalised for videos that have so
much zooming or camera movement that it’s impossible to see the earth or moon rotating).
ZIP this and your html and submit the file to the Lab 2 area in Blackboard.
Submissions that are not in the ZIP format will not be marked.
Marking Scheme
We will endeavour to mark your work in face-to-face sessions in the scheduled labs.
You will receive marks for:
• The objects being in appropriate locations and moving appropriately.
請(qǐng)加QQ:99515681  郵箱:99515681@qq.com   WX:codehelp 

標(biāo)簽:

掃一掃在手機(jī)打開當(dāng)前頁
  • 上一篇:SCC312代做、代寫Java編程語言
  • 下一篇:代寫CSC8208、Java/c++編程語言代做
  • 無相關(guān)信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級(jí)風(fēng)景名勝區(qū)
    昆明西山國家級(jí)風(fēng)景名勝區(qū)
    昆明旅游索道攻略
    昆明旅游索道攻略
  • 短信驗(yàn)證碼平臺(tái) 理財(cái) WPS下載

    關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網(wǎng) 版權(quán)所有
    ICP備06013414號(hào)-3 公安備 42010502001045

    美女扒开腿免费视频_蜜桃传媒一区二区亚洲av_先锋影音av在线_少妇一级淫片免费放播放_日本泡妞xxxx免费视频软件_一色道久久88加勒比一_熟女少妇一区二区三区_老司机免费视频_潘金莲一级黄色片_精品国产精品国产精品_黑人巨大猛交丰满少妇
    1024手机在线视频| 黄色香蕉视频在线观看| 精品久久久久久无码人妻| 久久久久亚洲av无码麻豆| 黄色a一级视频| 亚洲一二三精品| 黄色正能量网站| 一级黄色免费视频| 午夜69成人做爰视频| 中文字幕第20页| 麻豆精品国产传媒av| 91精品人妻一区二区| 久草福利在线观看| 国产破处视频在线观看| 国产大尺度视频| 懂色av懂色av粉嫩av| 国产视频三区四区| 五月天综合视频| 制服丝袜第二页| 插我舔内射18免费视频| 在线观看亚洲免费视频| 国产裸体视频网站| 91精产国品一二三| 亚洲色图欧美日韩| 日本少妇毛茸茸| av直播在线观看| www.av天天| 国产人与禽zoz0性伦| 99热6这里只有精品| 国产性猛交xx乱| 午夜国产福利一区二区| 日本一区二区三区在线免费观看| 日本一区二区三区在线免费观看| 少妇影院在线观看| 在线观看免费视频黄| 疯狂揉花蒂控制高潮h| 五月天综合视频| 国产97免费视频| 蜜桃传媒一区二区亚洲av| 国精产品视频一二二区| 精品国产视频一区二区三区| 中文字幕欧美视频| 三上悠亚ssⅰn939无码播放| 九九热免费在线| 91人妻一区二区三区蜜臀| 97精品人人妻人人| 免费一级suv好看的国产网站| 欧美一级特黄高清视频| 在线看黄色的网站| 亚洲熟女少妇一区二区| 制服丝袜在线第一页| 亚洲激情图片网| 日本黄色特级片| 国产88在线观看入口| 日本xxx在线播放| 人妻人人澡人人添人人爽| 久久久久国产精品无码免费看| 你懂得视频在线观看| 日韩av无码一区二区三区不卡| 美国美女黄色片| 熟妇人妻久久中文字幕| 国产黄在线免费观看| 免费看一级黄色| 91资源在线播放| 久久免费精品国产| 天天爽天天爽天天爽| 自拍视频一区二区| 男人添女人荫蒂国产| 国产又粗又长又黄的视频| 好吊日免费视频| 精人妻一区二区三区| 中日韩一级黄色片| 日本精品在线观看视频| 好吊色视频一区二区三区| 中国xxxx性xxxx产国| 一级黄色录像视频| 精品视频第一页| av黄色在线免费观看| 成人免费看aa片| 亚洲熟女乱综合一区二区三区| 久久无码人妻一区二区三区| 小泽玛利亚一区二区免费| 欧美巨胸大乳hitomi| 制服 丝袜 综合 日韩 欧美| 精品人伦一区二区| 男女男精品视频网站| 超碰人人干人人| 激情五月激情综合| 色欲人妻综合网| 日韩高清一二三区| a级片在线观看视频| 青青草视频播放| 欧美一区二区三区粗大| 久久久99999| 色哟哟在线观看视频| 男女一区二区三区| 魔女鞋交玉足榨精调教| 美国黑人一级大黄| 日韩精品一区二区亚洲av性色| 少妇丰满尤物大尺度写真| 日韩成人av影院| 久久久久成人精品无码中文字幕| 日韩av一二区| 国产又黄又粗的视频| 91麻豆免费视频网站| 日韩av无码一区二区三区不卡 | 国产一级二级在线观看| 182在线视频| 黄色片网站在线播放| 99热这里只有精品2| 真人bbbbbbbbb毛片| 国产男女猛烈无遮挡在线喷水| 婷婷伊人五月天| 短视频在线观看| 国产老头老太做爰视频| 亚洲av无码专区在线播放中文| 欧美无人区码suv| 国产又黄又粗又猛又爽的| 老司机av网站| 日本精品久久久久中文| 一边摸一边做爽的视频17国产| 亚洲精品色午夜无码专区日韩| 日本黄色录像视频| 亚洲久久久久久| 手机在线免费看毛片| 国产精品久久免费观看| 中文字幕 日本| 国产av一区二区三区传媒| 丁香花五月婷婷| 三级电影在线看| 国精品无码一区二区三区| 蜜桃av免费看| 国模私拍在线观看| 亚洲v在线观看| 中文字幕在线观看2018| 日本一级免费视频| 久久偷拍免费视频| 日本一卡二卡在线| 国产人妖在线观看| 中文字幕av免费在线观看| 波兰性xxxxx极品hd| 九九热久久免费视频| 人妻互换一区二区激情偷拍| 中文视频在线观看| 中文字幕第10页| 久久久久无码精品| 国产又粗又硬又长又爽| 国产黄色录像视频| 欧美日韩国产黄色| 国产精品美女高潮无套| xxxxx99| 九一在线免费观看| 亚洲精品久久久久久国| 蜜桃av.com| 中文字幕乱妇无码av在线| 午夜成人亚洲理伦片在线观看| 国产又黄又粗又猛又爽的| 欧美乱大交做爰xxxⅹ小说| 三级黄色免费观看| 制服.丝袜.亚洲.中文.综合懂| 久久无码人妻一区二区三区| 日本少妇一级片| 污污内射在线观看一区二区少妇| 在线免费观看污视频| 一本加勒比北条麻妃| 色屁屁草草影院ccyy.com| 我要看黄色一级片| 色婷婷狠狠18禁久久| 波多野结衣视频播放| 国产精品亚洲无码| 国产视频123区| 国产亚洲精品成人a| 亚洲一区二区三区蜜桃| 黄免费在线观看| 成人免费播放视频| 自拍偷拍视频亚洲| 日本人dh亚洲人ⅹxx| 国产老熟女伦老熟妇露脸| 五月婷婷欧美激情| 2018国产精品| 91导航在线观看| 成年女人免费视频| 国产极品视频在线观看| 亚洲精品久久一区二区三区777| 国产精品密蕾丝袜| 成人在线短视频| 美国黄色特级片| 制服丝袜在线第一页| 51精品免费网站| 欧美成人午夜精品免费| 日本人妻一区二区三区| 中文天堂资源在线| 毛茸茸多毛bbb毛多视频| 国产日韩欧美在线观看视频| 亚洲自拍偷拍一区二区| 中文字幕人妻一区| 91高清免费看| 大地资源高清在线视频观看| av在线网站观看| 成人性生活免费看|