three.js实现的地球3D旋转效果

three.js 地球与卫星绕地飞行【真实三维数据】 three.js 地球与卫星绕地飞行 阅读详情

分享一段代码实例,它利用three.js实现了地球的3D旋转效果。

代码实例如下:

     
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<!doctype html>
< html >
< head >
< meta  charset = "utf-8" >
< title >地球3D旋转效果</ title >
< style >
body {
   margin: 0;
}
#canvasBox {
   width: 100%;
   height: 99.5%;
   position: absolute;
}
</ style >
</ head >
< body >
< div  id = "canvasBox" ></ div >
< script  src = "https://cdn.bootcss.com/three.js/r76/three.min.js" ></ script >
< script  type = "text/javascript"  src = "http://libs.baidu.com/jquery/1.11.1/jquery.min.js" ></ script >
< script >
var canvasBox = document.getElementById("canvasBox");
var W = $("#canvasBox").width();
var H = $("#canvasBox").height();
//随浏览器窗口变化而变化
function onWindowResize() {
   camera.aspect = window.innerWidth / window.innerHeight;
   camera.updateProjectionMatrix();
   renderer.setSize(window.innerWidth, window.innerHeight);
}
  
$(window).on("resize", function() {
   onWindowResize();
})
var num = 0;
var scene, camera, renderer, light;
  
function intScene() {
   scene = new THREE.Scene();
}
  
function intCamera() {
   camera = new THREE.PerspectiveCamera(45, W / H, 1, 1000);
   camera.position.set(0, 0, 400);
   camera.up.set(0, 1, 0);
   camera.lookAt({
     x: 0,
     y: 0,
     z: 0
   })
}
  
function intRender() {
   renderer = new THREE.WebGLRenderer({
     antialias: true
   });
   //renderer = new THREE.CanvasRenderer();
   renderer.setSize(W, H);
   canvasBox.appendChild(renderer.domElement);
}
  
function intLight() {
   light = new THREE.DirectionalLight(0xffffff, 0.6);
   light.position.set(0, 0, 400);
   scene.add(light);
}
var xkbg, earth, texts;
  
function intModels() {
   /* 宇宙背景 */
   var yz_geometry = new THREE.SphereGeometry(500, 500, 50);
   var yz_material = new THREE.MeshPhongMaterial({
     map: THREE.ImageUtils.loadTexture('demo/js/img/yuzhou.jpg'),
     side: THREE.DoubleSide
   });
   xkbg = new THREE.Mesh(yz_geometry, yz_material);
   xkbg.position.set(0, 0, 0);
   scene.add(xkbg);
   //地球
   var earth_geometry = new THREE.SphereGeometry(100, 50, 50);
   var earth_material = new THREE.MeshPhongMaterial({
     map: THREE.ImageUtils.loadTexture('demo/js/img/earthj.jpg'),
     side: THREE.DoubleSide
   });
   earth = new THREE.Mesh(earth_geometry, earth_material);
   earth.position.set(0, 0, 0);
   xkbg.add(earth);
}
var mouseX, mouseY, isMove = true;
//自转
function zizhuan() {
   if (isMove) {
     requestAnimationFrame(zizhuan);
     xkbg.rotation.y -= 0.002;
     renderer.render(scene, camera);
   }
}
//拖拽
document.onmousedown = function(e) {
   isMove = false;
   mouseX = e.pageX;
   mouseY = e.pageY;
}
document.onmousemove = function rt(e) {
   if (!isMove) {
     var disX = e.pageX - mouseX;
     var disY = e.pageY - mouseY;
     requestAnimationFrame(zizhuan);
     xkbg.rotation.x = xkbg.rotation.x > 0.8 ? 0.8 : xkbg.rotation.x;
     xkbg.rotation.x = xkbg.rotation.x < -0.8 ? -0.8 : xkbg.rotation.x;
     xkbg.rotation.x += disY * 0.00005 * Math.PI;
     xkbg.rotation.y += disX * 0.0001 * Math.PI;
     renderer.render(scene, camera);
   }
}
document.onmouseup = function() {
   console.log(xkbg.rotation.y)
   isMove = true;
   setTimeout(function() {
     zizhuan();
   }, 2000)
}
  
//滑动鼠标让地球放大缩小
function intsScale() {
   $(document).on('mousewheel DOMMouseScroll', function(ev) {
     var e = ev || event;
     e.preventDefault();
     var value = e.originalEvent.wheelDelta || -e.originalEvent.detail;
     var delta = Math.max(-1, Math.min(1, value));
     if (delta == 1) {
       num++;
       num = num > 10 ? 10 : num;
     } else {
       num--;
       num = num < -15 ? -15 : num;
     }
     camera.position.set(0, 0, 400 + num * 10);
   });
}
  
function intStart() {
   intScene();
   intCamera();
   intRender();
   intLight();
   intModels();
   zizhuan();
   intsScale();
   renderer.render(scene, camera);
}
intStart();
</ script >
</ body >
</ html >
我的THREE.js之旅03: 使用THREE.js绘制地球和云层 页面上有一个地球和云层的3D效果。首先给一个SphereGeometry加上地球纹理,再给另一个SphereGeometry加上透明的云层纹理,套在一起,加上动画就好了 阅读详情

相关推荐

Threejs实现3d地球记录(4)

Three.js基础曲线函数有三种:样条曲线:在三维空间中设置5个顶点,输入三维样条曲线CatmullRomCurve3函数作为参数,然后返回更多个顶点,通过返回的顶点数据,构建一个几何体,然后绘制出来一条沿着5个顶点的光滑样条曲线。三维三次贝赛尔曲线: 由起点、终点、及两个控制点定义,通过三维三次贝塞尔曲线(CubicBezierCurve3)绘制出一条平滑的曲线圆弧曲线:类似于画一个圆,取其中一段作为弧线;将圆心坐标,圆半径,圆弧起始角度作为ArcCurve参数,绘制一段圆弧。

qq_41051239的博客 3415

Threejs入门之十一:创建旋转的地球

HTML+Threejs写的一个旋转地球的例子,从目录结构到代码实现,详细介绍了每一步的代码内容

九仞山的专栏 3141

从零开始Vue项目中使用MapboxGL开发三维地图教程(七)创建一个自动旋转的地球、添加一个3D模型、实现在两个地图之间滑动和同步来比较两个地图

实现思路:通过在动画结束时调用easeTo,旋转动画将无限期地继续。旋转在用户交互时暂停,并且在高缩放级别时减慢到停止。实现功能:地球仪和camera动画结合在一起,创建旋转行星效果。

tigerhhzz的博客 2198

three.js —— 3D球体旋转

运行效果 代码 <!doctype html> <html> <head> <meta charset="utf-8"> <title>3D球体</title> <style> * { padding: 0; margin: 0; } </style> <script src="htt

weixin_43506403的博客 2526

webgl 实现的炫酷地球 基于three.js

webgl 实现的炫酷地球 基于three.js

jquery.earth-3d:jQuery插件,可让您在画布上绘制漂亮的3d旋转地球。 看一下演示

jquery.earth-3d jQuery插件,可让您在画布上绘制漂亮的3d旋转地球。 看一下演示: : 描述 基于令人赞叹的插件,jquery.earth3d.js是一个开源的jQuery ui插件,它将允许您在画布上模拟3d地球(或实际上是任何行星)。 我还添加了一些我的宠物项目所需的功能。 这是到目前为止提供的主要功能: 更改地图纹理(例如,可以将其更改为火星)以及平铺 更改旋转轴(倾斜,旋转) 改变大小 更改默认转速 平滑的鼠标拖动:您可以用鼠标旋转地球,它将平滑地恢复到正常速度 通过指示球坐标来渲染位置 在这些位置之间绘制路径 按照路径绘制和更新航班 位置和航班均可以点击,并且可以完全自定义 它适用于 执照 jquery.earth3d.js作为插件,已获得。 作者 Sebastien Drouyer-别名此jquery ui插件 Sam 别名 额外的积分 罗杰·库

html地球转动效果,Web前端html5网页three.js、earth会转动的地球

/** @Author: tiandong* @Date: 2016-04-26 18:17:15* @Last Modified by: tiandong* @Last Modified time: 2016-04-26 18:17:15*/window.onload = function() {var container, stats;var camera, scene, renderer;v...

weixin_35377028的博客 1277

html5+three.js科幻地球仪3D旋转动画特效.zip

有兴趣刚需的可以自己下载,非常实用的特效代码,可以完美运行,有能力的还可以二次修改!

企业网站建设大师篇:打造可旋转地球与全球业务分布展示的3D互动官网

能以直观的方式展示企业的全球布局与合作网络,兼具视觉震撼与交互趣味。这种设计常用于科技公司、国际企业、跨境品牌网站,企业全球节点(带标记点与光晕)动态背景、柔和光照、响应式布局。鼠标拖动旋转地球、滚轮缩放。本篇教程将带你实现一个。渲染 3D 地球模型。的3D交互官网主页。

2501_93174843的博客 412

html5基于Echarts制作3D炫酷世界地图地球制作,地图勾起动画,非常炫酷

html5基于Echarts制作3D炫酷世界地图地球制作,地图勾起动画,非常炫酷

告别玄学调参:手把手教你用20元件模型搞定GaN HEMT高频仿真(附S参数提取避坑指南)

本文详细介绍了如何使用20元件模型优化GaN HEMT高频仿真,解决传统16元件模型在10GHz以上频段的误差问题。通过S参数提取避坑指南和实战案例,帮助工程师精准建模分布式电极效应和寄生反馈路径,提升射频电路设计效率。

weixin_42523693的博客 443

ThreeJs实现裸眼3D地球仪

ThreeJs实现裸眼3D地球

分享程序相关知识 1105

AMEsim柱塞泵的建模学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、为什么要对柱塞泵进行仿真?二、Amesim中柱塞泵的模型1.amesim中自己的定排量五柱塞的斜盘柱塞泵2.压力、流量仿真总结 前言 最近在学习Amesim进行柱塞泵的仿真学习,顺便在这里记录我的学习过程,这是我的初衷 提示:以下是本篇文章正文内容,下面案例可供参考 一、为什么要对柱塞泵进行仿真? 柱塞泵是功能和动力学比较复杂的流体机械。而在实际实验中,往往没有条件或者需要对柱塞泵做一些优化,所以需要我们利用仿真...

innocent_cft的博客 8187

vue 3D地球 转动

vue 3D地球 转动

u013095204的博客 1622

【上海大学计算机组成原理实验报告】一、数据传送实验

将58H写入A寄存器//将6BH写入W寄存器//将C3H写入R1寄存器//将C3H写入R1寄存器//了解实验仪器数据总线的控制方式//掌握数据传送的基本原理//掌握各寄存器的结构、工作原理及其控制方法//数据传送实验

HackerKevon的博客 3511

从机械臂示教到厨房做饭:ACT模仿学习如何让机器人更“人性化”?

本文探讨了ACT(Action Chunking with Transformers)模仿学习技术如何让机器人更“人性化”,特别是在厨房等复杂场景中的应用。通过动作分块(Action Chunking)和时态融合(Temporal Ensemble)技术,机器人能够像人类一样记忆和执行复杂任务,如烹饪。文章还分析了ACT在家庭场景中的落地挑战及其在康复医疗、柔性制造等领域的跨领域应用潜力。

weixin_30613343的博客 255

Hugo博客个性化主题开发踩坑记录(二)

实现threejs做的一个有趣的旋转小特效 //earth var earthgeometry = new THREE.SphereGeometry(100,100,100); var texture = new THREE.TextureLoader().load( './image/ditu6.png' ); var earthmaterial = new THREE.MeshBasicMaterial({ color: 0xffffff, .

Ceichaos的博客 774

openeuler在线/离线安装docker服务

openeuler在线/离线安装docker服务

haixuti7的博客 1071

最前端|注意看!我用代码写了一个会动的3D地球

让数据动起来!

在数字化道路无限探索 2093

中山大学_数据科学与计算机_预推免

前言 2019 年 9 月中旬是中山大学预推免时间,本人没能进到夏令营,但是最后在预推免上岸也算不幸中的万幸。 记忆不一定准确,但希望能帮到他人。 想看 流程 的可以直接看总结,正文部分有本人心路历程。 预推免 中山大学的预推免大致可以分为 报道,机试,面试 三大部分,而且尤其是面试,所有人加起来总时长 3 天,幸运的是,本人被安排在第一天的下午第一场,上午就是机试,报道,机试,面试,无缝衔接。 ...

一把健 5209

大模型多智能体协作面试题及参考答案

在多智能体系统里,代理定义自身目标或效用函数的过程与系统架构、应用场景紧密相关。从本质上讲,目标是代理行为的导向,而效用函数则是对目标达成程度的量化评估。代理通常依据自身角色、系统全局需求以及与其他代理的交互关系来确立目标。比如在合作型 MAS 中,代理目标可能需要与全局目标对齐,像多个物流机器人协作完成货物配送时,每个机器人的目标会围绕 “高效完成分配任务”“避免路径冲突” 等展开,其效用函数可能涉及任务完成时间、能耗等指标的加权求和。目标定义的方式存在多种类型。

大模型大数据攻城狮的专栏 1023

threejs学习第一天--3D地月环绕实战案例

threejs学习第一天,做一下记录

weixin_47505105的博客 1396

Docker - 基本概念、与虚拟机的区别、架构、镜像操作、容器操作、数据卷挂载

p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口(配置映射是因为用户只能通过 http 请求访问到服务器,不能直接访问到对应的容器,因此需要服务器端口与容器端口建立映射关系)这里我们有两种启动 redis 的方式,第一种是直接启动 redis ,第二种是以 AOF 持久化的方式启动容器(--appendonly yes),如下图。如果需要持续查看日志信息可以添加 -f 参数,例如:docker logs -f mn ,这里 mn 是自定义容器名称, ctrl + c 可以停止跟踪。

CYK_byte的博客 1万+

使用WebGL和JavaScript构建地球

所有的HTML5,我们一直在考虑相关的API, WebGL的可能是最有趣的。 有了它,我们就可以在浏览器中制作真棒3D环境,在这篇文章中我将带您究竟是如何做到这一点。 特别是,我们将要建立的地球模型,我们可以绕像一个疯狂的人以及我们可以哇我们的开发伙伴们......好吧,至少有一点。 在我们开始之前 在本教程中,我们将使用神奇three.js所WebGL的插件 。 这有点像jQuery的W...

345

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

3D创意速成:用THREE.JS中文文档快速验证你的想法

现在更厉害的是,可以用自然语言描述想要的3D效果,AI就能自动生成对应的THREE.JS代码。比如告诉AI"创建一个有蓝色背景的旋转地球仪,带经纬线",它就能输出完整可运行的代码。比如创建一个旋转立方体,文档里就有完整示例,复制粘贴就能跑起来。不需要配置本地环境,打开网页就能开始创作,AI辅助生成代码的功能让实现想法变得特别简单。特别是部署功能,点击一下就能把原型变成可公开访问的网页,省去了服务器配置的麻烦。他们不仅能查看效果,还能直接在浏览器里修改代码,实现远程协作。游戏场景模板(角色控制、碰撞检测)

SnowflakeJaguar14的博客 401

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【带着canvas去流浪(15)】threejs fundamentals系列1-scene graph

示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:《大史住在大前端》原创博文目录 华为云社区地址:【你要的前端打怪升级指南】 目录 原文地址:https://threejsfundamentals.org/threejs/lesson...

zhy_Learn的博客 101
上一篇: 商品抢购倒计时效果
下一篇: js点击当前链接背景变色其他链接恢复原来背景色
Return_KB
博客等级 码龄9年 23粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值