threeJs学习 贴图 :地球

效果图:
在这里插入图片描述
贴图以后的效果:
在这里插入图片描述
vue代码:

<template>
  <div class="scene_box">
    <p>创建纹理贴图TextureLoader</p>
    <div class="canvas"></div>
  </div>
</template>
      
 <script setup>
import { nextTick } from "vue";
import img from "../../js/chapter5/earth.jpg";
import * as THREE from "three";
// 引入threejs 的扩展库  相机轨道控件
import { OrbitControls } from "three/addons/controls/OrbitControls.js";

nextTick(() => {
  // ******************创建一个场景*************
  const geometry = new THREE.SphereGeometry(80); //球体

  //纹理贴图加载器TextureLoader
  const texLoader = new THREE.TextureLoader();
  // .load()方法加载图像,返回一个纹理对象Texture
  const texture = texLoader.load(img);
  const material = new THREE.MeshBasicMaterial({
    // color: 0x00ffff,
    // 设置纹理贴图:Texture对象作为材质map属性的属性值
    map: texture, //map表示材质的颜色贴图属性
  });

  // material.map = texture;//也可以通过map属性直接设置,材质的参数设置一样

  const mesh = new THREE.Mesh(geometry, material);
  //场景
  const scene = new THREE.Scene();
  scene.add(mesh); //模型对象添加到场景中

  //辅助观察的坐标系
  const axesHelper = new THREE.AxesHelper(150);
  scene.add(axesHelper);

  //光源设置
  const directionalLight = new THREE.DirectionalLight(0xffffff, 1);
  directionalLight.position.set(100, 60, 50);
  scene.add(directionalLight);
  const ambient = new THREE.AmbientLight(0xffffff, 0.4);
  scene.add(ambient);

  //渲染器和相机
  let dom = document.querySelector(".canvas");
  const width = dom.offsetWidth;
  const height = dom.offsetHeight;
  const camera = new THREE.PerspectiveCamera(30, width / height, 1, 3000);
  camera.position.set(292, 223, 185);
  camera.lookAt(0, 0, 0);

  const renderer = new THREE.WebGLRenderer();
  renderer.setSize(width, height);
  dom.appendChild(renderer.domElement);

  // 渲染循环
  function render() {
    scene.rotateY(0.005);
    renderer.render(scene, camera);
    requestAnimationFrame(render);
  }
  render();

  //   const controls = new OrbitControls(camera, renderer.domElement);

  // 画布跟随窗口变化
  window.onresize = function () {
    renderer.setSize(dom.offsetWidth, dom.offsetHeight);
    camera.aspect = dom.offsetWidth / dom.offsetHeight;
    camera.updateProjectionMatrix();
  };
  renderer.setPixelRatio(window.devicePixelRatio);
});
</script>
      
      
<style  scoped>
.canvas {
  width: 80vw;
  height: 60vh;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/924826.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

联想品牌的电脑 Bios 快捷键是什么?如何进入 Bios 设置?

在某些情况下&#xff0c;您可能需要通过U盘来安装操作系统或进行系统修复。对于联想电脑用户来说&#xff0c;了解如何设置U盘作为启动设备是非常有用的技能之一。本文简鹿办公将指导您如何使用联想电脑的 U 盘启动快捷键来实现这一目标。 联想笔记本 对于大多数联想笔记本电…

SmartSQL:一款方便、快捷的数据库文档查询、导出工具

&#x1f6a9; 项目介绍 SmartSQL 是一款方便、快捷的数据库文档查询、导出工具&#xff01;从最初仅支持SqlServer数据库、CHM文档格式开始&#xff0c;通过不断地探索开发、集思广益和不断改进&#xff0c;又陆续支持Word、Excel、PDF、Html、Xml、Json、MarkDown等文档格式…

Transformer?Attention?——Are All You Need!

Hi&#xff0c;大家好&#xff0c;我是半亩花海。本文主要较为深入地讲述 transformer 模型及 attention 机制等相关深度学习的知识&#xff0c;主要介绍模型结构、原理等。Transformer 属于是当下比较流行和创新的深度学习的基础模型架构&#xff0c;主要应用于自然语言处理&a…

24.11.28 Cookie

cookie_webstorage 1.cookie 每次请求时 可以把cookie自定义的数据 传给服务端 (请求参数 请求头之外 报文传自定义数据的位置 cookie可以长期保存) cookie特点 1.数据格式只有字符串 2.按键值对存储 3.对中文支持较差(尽量不要用中文) 4.按照网站(域 domain)存储 5.可…

尚硅谷前端 (wsy答辩)

尚硅谷前端 &#xff08;wsy答辩&#xff09; 文章目录 尚硅谷前端 &#xff08;wsy答辩&#xff09;一、前端开发过程和框架1.框架目录结构认识1.程序的入口 有两个 第一个是index,html , 第二个在SRC目录下的main,js2.前端页面环境使用框架&#xff08;模板&#xff09;3、框…

不间断电源 (UPS) 对现代技术可靠性的影响

在这个技术型世界里&#xff0c;无论是在个人还是商业环境中&#xff0c;电力供应商提供的稳定供电都变得越来越重要。 不间断电源 (UPS) 系统是一种不可或缺的解决方案&#xff0c;可保证终端设备不受干扰地运行&#xff0c;在出现电源问题或故障时让用户继续工作。 这篇文章…

【05】Selenium+Python 两种文件上传方式(AutoIt)

上传文件的两种方式 一、input标签上传文件 可以用send_keys方法直接上传文件 示例代码 input标签上传文件import time from selenium import webdriver from chromedriver_py import binary_path # this will get you the path variable from selenium.webdriver.common.by i…

leetcode 二叉树的最大深度

104. 二叉树的最大深度 已解答 简单 相关标签 相关企业 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3…

MATLAB - ROS2 ros2genmsg 生成自定义消息(msg/srv...)

系列文章目录 前言 语法 ros2genmsg(folderpath)ros2genmsg(folderpath,NameValue) 一、说明 ros2genmsg(folderpath) 通过读取指定文件夹路径下的 ROS 2 自定义信息和服务定义来生成 ROS 2 自定义信息。函数文件夹必须包含一个或多个 ROS 2 软件包。这些软件包包含 .msg 文件…

使用 Elastic 和 Apple 的 OpenELM 模型构建 RAG 系统

作者&#xff1a;来自 Elastic Gustavo Llermaly 如何部署和测试新的 Apple 模型并使用 Elastic 构建 RAG 系统。 在本文中&#xff0c;我们将学习部署和测试新的 Apple 模型&#xff0c;并构建一个 RAG 系统来模拟 Apple Intelligence&#xff0c;使用 Elastic 作为向量数据库…

springboot336社区物资交易互助平台pf(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 社区物资交易互助平台设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff…

python爬虫案例——猫眼电影数据抓取之字体解密,多套字体文件解密方法(20)

文章目录 1、任务目标2、网站分析3、代码编写1、任务目标 目标网站:猫眼电影(https://www.maoyan.com/films?showType=2) 要求:抓取该网站下,所有即将上映电影的预约人数,保证能够获取到实时更新的内容;如下: 2、网站分析 进入目标网站,打开开发者模式,经过分析,我…

Flutter 指纹识别

在这篇博客中&#xff0c;我们将介绍如何使用 Flutter 的 local_auth 插件在 Android 和 iOS 设备上实现指纹识别功能。通过这一步一步的实现&#xff0c;我们将学习如何检查设备是否支持生物识别、如何触发指纹验证&#xff0c;并处理可能出现的错误。 效果图&#xff08;因为…

不建模,无代码,如何快速搭建VR虚拟展厅?

不建模、无代码搭建虚拟展厅&#xff0c;可以借助一些专业的虚拟展厅搭建平台或工具来实现。以下是一些具体的步骤和建议&#xff1a; 一、选择平台或工具 首先&#xff0c;需要选择一个适合的平台或工具来搭建虚拟展厅。这些平台通常提供预设的展厅模板、拖拽式编辑工具和丰富…

网络空间安全之一个WH的超前沿全栈技术深入学习之路(13-3)白帽必经之路——如何用Metasploit 渗透到她的心才不会让我释怀

欢迎各位彦祖与热巴畅游本人专栏与博客 你的三连是我最大的动力 以下图片仅代表专栏特色 [点击箭头指向的专栏名即可闪现] 专栏跑道一 ➡️网络空间安全——全栈前沿技术持续深入学习 专栏跑道二 ➡️ 24 Network Security -LJS ​ ​ ​ 专栏跑道三 ➡️ MYSQL REDIS Advan…

深入理解计算机系统,源码到可执行文件翻译过程:预处理、编译,汇编和链接

1.前言 从一个高级语言到可执行程序&#xff0c;要经过预处理、编译&#xff0c;汇编和链接四个过程。大家可以思考下&#xff0c;为什么要有这样的过程&#xff1f; 我们学习计算机之处&#xff0c;就应该了解到&#xff0c;计算机能够识别的只有二进制语言&#xff08;这是…

linux系统清理全部python环境并重装

提问 centos系统清理全部python环境并重装&#xff0c;并且使用宝塔。 解答 要在CentOS系统中彻底清理Python3环境&#xff0c;可以遵循以下步骤&#xff1a; 卸载Python3 使用rpm命令卸载所有与Python3相关的包。这个命令会查询所有已安装的与python3相关的rpm包&#xf…

蓝桥杯——递归

1、用递归实现阶乘 5*4*3*2*1120 package day3;public class Demo6 {public static void main(String[] args) {int result f(5);System.out.println(result);}private static int f(int i) {if(i1) {return 1;}return i * f(i-1);}}结果&#xff1a;120 2、爬楼梯 有一个楼…

DAMODEL丹摩|部署FLUX.1+ComfyUI实战教程

本文仅做测评体验&#xff0c;非广告。 文章目录 1. FLUX.1简介2. 实战2. 1 创建资源2. 1 ComfyUI的部署操作2. 3 部署FLUX.1 3. 测试5. 释放资源4. 结语 1. FLUX.1简介 FLUX.1是由黑森林实验室&#xff08;Black Forest Labs&#xff09;开发的开源AI图像生成模型。它拥有12…

黑马程序员Java项目实战《苍穹外卖》Day02

苍穹外卖-day02 课程内容 新增员工员工分页查询启用禁用员工账号编辑员工导入分类模块功能代码 **功能实现&#xff1a;**员工管理、菜品分类管理。 员工管理效果&#xff1a; 菜品分类管理效果&#xff1a; 1. 新增员工 1.1 需求分析和设计 1.1.1 产品原型 一般在做需求…