婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > three.js模擬實現太陽系行星體系功能

three.js模擬實現太陽系行星體系功能

熱門標簽:智能電銷機器人被禁用了么 如何查看地圖標注 欣鼎電銷機器人 效果 黃石ai電銷機器人呼叫中心 地圖標注軟件打印出來 高德地圖標注商戶怎么標 惡搞電話機器人 電話機器人技術 ok電銷機器人

概況如下:

1、 SphereGeometry 實現自轉的太陽;

2、 RingGeometry 實現太陽系星系的公轉軌道;

3、 ImageUtils 加載球體和各行星貼圖;

4、 canvas 中 createRadialGradient 實現太陽發光效果;

5、 THREE.Sprite 精靈實現太陽系行星。

效果圖如下:

 

預覽地址: three.js模擬實現太陽系行星體系

初始化場景、相機、渲染器,設置相機位置。

// 初始化場景
var scene = new THREE.Scene();
// 初始化相機,第一個參數為攝像機視錐體垂直視野角度,第二個參數為攝像機視錐體長寬比,
// 第三個參數為攝像機視錐體近端面,第四個參數為攝像機視錐體遠端面
var camera = new THREE.PerspectiveCamera(20, dom.clientWidth / dom.clientHeight, 1, 100000);
// 設置相機位置,對應參數分別表示x,y,z位置
camera.position.set(0, 0, 500);
var renderer = new THREE.WebGLRenderer({
      alpha: true,
      antialias: true
});

設置場景窗口尺寸,并且初始化控制器,窗口尺寸默認與瀏覽器窗口尺寸保持一致,最后將渲染器加載到dom中。

// 設置窗口尺寸,第一個參數為寬度,第二個參數為高度
renderer.setSize(dom.clientWidth, dom.clientHeight);
// 初始化控制器
var orbitcontrols = new THREE.OrbitControls(camera,renderer.domElement);
// 將渲染器加載到dom中
dom.appendChild(renderer.domElement);

定義太陽及其材質,太陽通過 SphereGeometry 來實現,通過 ImageUtils 來導入貼圖。

// 定義太陽材質
var sunTexture = THREE.ImageUtils.loadTexture('./image/sun_bg.jpg', {}, function () {
    renderer.render(scene, camera);
});
// 太陽以及太陽材質設定
centerBall = new THREE.Mesh(new THREE.SphereGeometry(30, 30, 30), new THREE.MeshBasicMaterial({
    map: sunTexture
}));
scene.add(centerBall);

太陽發光效果通過 Sprite 引入 canvas 渲染的 createRadialGradient 來實現。

/**
* 實現球體發光
* @param color 顏色的r,g和b值,比如:“123,123,123”;
* @returns {Element} 返回canvas對象
*/
var generateSprite = function (color) {
   var canvas = document.createElement('canvas');
   canvas.width = 16;
   canvas.height = 16;
   var context = canvas.getContext('2d');
   var gradient = context.createRadialGradient(canvas.width / 2, canvas.height / 2, 0, canvas.width / 2, 
   canvas.height / 2, canvas.width / 2);
   gradient.addColorStop(0, 'rgba(' + color + ',1)');
   gradient.addColorStop(0.2, 'rgba(' + color + ',1)');
   gradient.addColorStop(0.4, 'rgba(' + color + ',.6)');
   gradient.addColorStop(1, 'rgba(0,0,0,0)');
   context.fillStyle = gradient;
   context.fillRect(0, 0, canvas.width, canvas.height);
   return canvas;
};
// 添加太陽發光效果
var centerBallLite = new THREE.Sprite(new THREE.SpriteMaterial({
   map: new THREE.CanvasTexture(generateSprite(sunSpriteColor)),
   blending: THREE.AdditiveBlending
}));
centerBallLite.scale.x = centerBallLite.scale.y = centerBallLite.scale.z = sunScaleSize;
scene.add(centerBallLite);

太陽系各行星公轉軌道通過 RingGeometry 來實現,公轉軌道偏移通過 position 來實現,行星體系通過 THREE.Sprite 來實現。

/**
 * 返回行星軌道的組合體
 * @param starLiteSize 行星的大小
 * @param starLiteRadius 行星的旋轉半徑
 * @param rotation 行星組合體的x,y,z三個方向的旋轉角度
 * @param speed 行星運動速度
 * @param imgUrl 行星的貼圖
 * @param scene 場景
 * @returns {{satellite: THREE.Mesh, speed: *}} 衛星組合對象;速度
*/
var initSatellite = function (starLiteSize, starLiteRadius, rotation, speed, imgUrl, scene) {
var track = new THREE.Mesh(new THREE.RingGeometry(starLiteRadius, starLiteRadius + 0.05, 50, 1), new THREE.MeshBasicMaterial());
var centerMesh = new THREE.Mesh(new THREE.SphereGeometry(1, 1, 1), new THREE.MeshLambertMaterial()); //材質設定
var starLite = new THREE.Sprite(new THREE.SpriteMaterial({
     map: THREE.ImageUtils.loadTexture(imgUrl)
}));
starLite.scale.x = starLite.scale.y = starLite.scale.z = starLiteSize;
starLite.position.set(starLiteRadius, 0, 0);
var pivotPoint = new THREE.Object3D();
pivotPoint.add(starLite);
pivotPoint.add(track);
centerMesh.add(pivotPoint);
centerMesh.rotation.set(rotation.x, rotation.y, rotation.z);
scene.add(centerMesh);
   return {starLite: centerMesh, speed: speed};
};

將創建好的太陽及行星自轉公轉體系渲染到場景中,自轉和公轉通過定時修改 position 值來實現,動畫使用 requestAnimationFrame 來實現。

// 執行函數
var render = function () {
    renderer.render(scene, camera);
    centerBall.rotation.y -= 0.01;
    for (var i = 0; i < starLites.length; i++) {
        starLites[i].starLite.rotation.z -= starLites[i].speed;
    }
    orbitcontrols.update();
    requestAnimationFrame(render);
}

總結

以上所述是小編給大家介紹的three.js模擬實現太陽系行星體系功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

標簽:綏化 赤峰 盤錦 萍鄉 中山 金昌 聊城 阿壩

巨人網絡通訊聲明:本文標題《three.js模擬實現太陽系行星體系功能》,本文關鍵詞  three.js,模擬,實現,太陽系,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《three.js模擬實現太陽系行星體系功能》相關的同類信息!
  • 本頁收集關于three.js模擬實現太陽系行星體系功能的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    中文字幕av一区二区三区免费看 | 极品少妇一区二区| 亚洲小说春色综合另类电影| 成人美女视频在线观看| 国产美女主播视频一区| 国产精品99久久久久久久vr| 欧美男女性生活在线直播观看| 日本系列欧美系列| 久久国产婷婷国产香蕉| 精品一区二区久久| 成人性生交大片免费看中文网站| 国产高清精品在线| 一区二区高清视频在线观看| 亚洲精品乱码久久久久久黑人 | 国产激情一区二区三区| 亚洲乱码中文字幕综合| 亚洲午夜久久久久久久久电影院| 日韩精品成人一区二区在线| 久久99国产精品久久| 国产99一区视频免费 | 亚洲影视在线播放| 石原莉奈一区二区三区在线观看| 国产亚洲综合av| 中文欧美字幕免费| 亚洲乱码国产乱码精品精98午夜| 久久综合中文字幕| 欧美亚洲精品一区| 成人黄色免费短视频| 色www精品视频在线观看| 韩国女主播一区| 91香蕉视频mp4| 日韩欧美你懂的| 中文字幕一区二区在线观看| 亚洲国产成人porn| 国产成人午夜片在线观看高清观看| 97se狠狠狠综合亚洲狠狠| 日韩精品一区二区三区四区| 国产精品三级电影| 蜜桃久久av一区| 日本韩国一区二区三区| 日本一区二区三区在线观看| 精品国产三级电影在线观看| 亚洲毛片av在线| 国产精品系列在线观看| 91精品国产综合久久国产大片| 国产精品天美传媒| 蜜臀av亚洲一区中文字幕| 日韩高清一区二区| 91久久一区二区| 久久久久久久免费视频了| 欧美zozo另类异族| 欧美成人一区二区三区| 亚洲高清视频的网址| 99riav久久精品riav| 91在线播放网址| 91久久久免费一区二区| 日本一二三四高清不卡| 久久不见久久见免费视频7| 欧美视频中文一区二区三区在线观看| 91小视频在线免费看| 久久一二三国产| 国产精品区一区二区三区| 麻豆久久一区二区| 国产尤物一区二区| 精品国产乱码久久久久久老虎 | 日韩你懂的电影在线观看| 五月婷婷综合激情| 秋霞午夜av一区二区三区| 久久精品国产99| 91.成人天堂一区| 精品国产一区二区三区不卡 | 欧美日本一区二区三区四区| 91精品久久久久久久91蜜桃| 91精品国产欧美一区二区18 | 在线免费观看日本一区| 欧美性受极品xxxx喷水| 亚洲婷婷综合久久一本伊一区| 亚洲黄色av一区| 一本大道综合伊人精品热热 | 中文字幕中文字幕一区二区| 一区二区成人在线| 91国产免费看| 欧美一区二区三区免费在线看| 最新日韩av在线| 天堂成人免费av电影一区| 国模一区二区三区白浆| 色综合天天综合在线视频| 一区精品在线播放| 96av麻豆蜜桃一区二区| 精品欧美久久久| 国产精品一区一区| 国产精品福利一区| 欧美日本韩国一区二区三区视频| 图片区小说区区亚洲影院| 日韩电影在线一区二区三区| 日韩精品中文字幕在线一区| 国产99久久久精品| 日韩视频一区二区在线观看| 亚洲欧洲日本在线| 在线一区二区视频| 麻豆一区二区三区| 亚洲色图欧洲色图| 日韩免费观看高清完整版在线观看| 国产精品国产三级国产a| 欧美在线免费视屏| 国产精品二区一区二区aⅴ污介绍| 97se亚洲国产综合自在线不卡| 午夜精品久久久久久久久| 久久久精品欧美丰满| 色哟哟一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整| 成人av电影免费在线播放| 五月婷婷久久综合| 国产精品久久久久久久久免费樱桃 | 欧美精品1区2区3区| 国产精品亚洲第一 | 91麻豆精品国产91| 成人在线综合网站| 天堂蜜桃91精品| 自拍偷拍欧美精品| 精品国产第一区二区三区观看体验| jiyouzz国产精品久久| 国产精品乱人伦一区二区| 日韩视频在线一区二区| 91免费观看视频| 亚洲猫色日本管| 波多野结衣的一区二区三区| 亚洲视频一二区| 色综合久久综合网97色综合 | 欧美国产一区在线| 欧美一区二区三区四区在线观看| 97se亚洲国产综合在线| 国产一区不卡视频| 中文字幕精品—区二区四季| 日韩亚洲欧美一区二区三区| 欧洲一区二区三区免费视频| 91性感美女视频| 99久久婷婷国产综合精品电影 | 亚洲久草在线视频| 国产精品视频线看| 91亚洲精品一区二区乱码| 亚洲欧美日韩久久| 国产精品免费aⅴ片在线观看| 不卡免费追剧大全电视剧网站| 日韩va欧美va亚洲va久久| 亚洲综合一区二区三区| 欧美日韩国产首页| 在线观看精品一区| 在线视频国内自拍亚洲视频| 91亚洲国产成人精品一区二区三| 成人免费看视频| 92国产精品观看| 偷拍自拍另类欧美| 久久久99精品免费观看不卡| 日韩欧美成人激情| 亚洲精品一区二区三区影院| 不卡大黄网站免费看| 视频精品一区二区| 免费成人av资源网| 九九视频精品免费| 成人做爰69片免费看网站| 亚洲一区二区三区视频在线| 亚洲国产精品久久久男人的天堂| www日韩大片| 欧美国产一区在线| 亚洲狠狠丁香婷婷综合久久久| 精品久久人人做人人爰| 99re热这里只有精品视频| yourporn久久国产精品| 精彩视频一区二区| 风间由美一区二区三区在线观看| 99久久99久久精品免费看蜜桃| 在线观看视频91| 成人app在线观看| 久久精品国产99国产精品| 国产乱对白刺激视频不卡| 91视频国产资源| 91精品国产色综合久久不卡蜜臀 | 欧美最新大片在线看| 福利一区在线观看| 欧美视频一区二区在线观看| 91精品国产综合久久福利| 国产精品欧美综合在线| 午夜国产精品影院在线观看| 亚洲欧美偷拍三级| 蜜臀精品一区二区三区在线观看 | 99国产精品国产精品毛片| 欧美日韩国产在线观看| 久久夜色精品国产噜噜av | 国产精品视频yy9299一区| 欧美一区二区三区喷汁尤物| 久久久久久黄色| 2024国产精品视频| 亚洲18女电影在线观看| 高清av一区二区| 精品国产乱码久久久久久免费| 欧美精品一二三四| 国产精品毛片大码女人| 蜜桃av一区二区| 欧美视频在线不卡|