位置: IT常识 - 正文

程序人生 | 与足球共舞的火柴人(致敬格拉利什,赋予足球更深的意义)(程序人是什么意思)

编辑:rootadmin
程序人生 | 与足球共舞的火柴人(致敬格拉利什,赋予足球更深的意义)

推荐整理分享程序人生 | 与足球共舞的火柴人(致敬格拉利什,赋予足球更深的意义)(程序人是什么意思),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:程序人生雷军,程序人生官网,程序化人生,csdn程序人生,程序人生官网,程序人生官网,程序人生英文,程序人生可爱图片,内容如对您有帮助,希望把文章链接给更多的朋友!

个人简介

👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端 📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀未来打算: 为中国的工业软件事业效力n年 🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2&Vue3项目实战 🥝Node.js 🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享&商务合作,快加入进来吧

文章目录一、前言二、使用 Three.js 渲染足球三、使用 Three.js 渲染跳舞的火柴人四、总结(充能)五、写在最后(观世界杯有感)一、前言

2022 年的 卡塔尔足球世界杯 已经开赛 14 天。

2022.11.21 晚,格拉利什 进球后 庆祝动作 的背后其实有一段 非常感人的故事(格拉利什和患脑瘫的小球迷的暖心约定)。

【格拉利什庆祝动作】【世界杯感动瞬间】

花有重开日,人无再少年。格拉利什 这类人的存在,赋予了足球更深的意义!

程序人生,用技术记录世界杯,接下来我们使用 Three.js 技术,来实现一个 与足球共舞的火柴人(致敬格拉利什)

备注:其实我自己在电脑上运行效果是非常顺滑流畅的,可能是录屏软件的问题,会导致观看效果不佳(看着卡顿,其实很丝滑)

与足球共舞的火柴人

二、使用 Three.js 渲染足球

简介:Three.js 是 JavaScript 编写的 WebGL 第三方库。提供了非常多的 3D 显示功能。

程序人生 | 与足球共舞的火柴人(致敬格拉利什,赋予足球更深的意义)(程序人是什么意思)

渲染足球前我们得先有一张足球的材质贴图(football.png),用于把图贴到我们创建的球体上。如下所示:

创建一个HTML文件,World_Cup.html

备注:以下仅简单的解释了部分代码的含义,详细内容请自行学习

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>2022世界杯</title> <style> body { margin: 0px; } </style></head><body> <script type="text/javascript" src="https://cdn.bootcss.com/three.js/90/three.min.js"></script> <script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script> <script type="text/javascript"> // 初始化相机 let camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000) camera.position.z = 500; // 初始化场景 let scene = new THREE.Scene() // 初始化渲染器 let renderer = new THREE.WebGLRenderer() renderer.setSize(window.innerWidth, window.innerHeight) document.body.appendChild(renderer.domElement) // 定义一个球体,这里的参数可以根据需要调节 let geometry = new THREE.SphereGeometry(50, 32, 32) let texture = new THREE.TextureLoader().load('./imgs/football.png') let material = new THREE.MeshBasicMaterial({map: texture}) // 将材质和几何体进行绑定 let cube = new THREE.Mesh(geometry, material) // 将绑定后的几何体放入场景中 scene.add(cube) // 进行渲染 function animate() { requestAnimationFrame(animate) renderer.render(scene, camera) } animate() </script></body> </html>

三、使用 Three.js 渲染跳舞的火柴人

创建一个HTML文件,Matchman.html。该部分代码比较复杂,不仅需要创建场景生成火柴人,还需要给他添加一些列的动作,并完美的渲染出来(不白屏,不卡顿等)。所以需要引入很多内置的 js 文件,在此就不列举了,想要代码的可以找我要。

<!DOCTYPE html><html lang="en"><head><title>three.js webgl - loaders - BVHLoader</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"><link type="text/css" rel="stylesheet" href="main.css"><style>body {background-color: #eee;color: #444;}a {color: #08f;}h2 {color: orange;}</style></head><body><div id="info"><h2>与足球共舞的火柴人【前端杂货铺】</h2></div><script async src="https://unpkg.com/es-module-shims@1.3.6/dist/es-module-shims.js"></script><script type="importmap">{"imports": {"three": "../build/three.module.js","three/addons/": "./jsm/"}}</script><script type="module">import * as THREE from 'three';import { OrbitControls } from 'three/addons/controls/OrbitControls.js';import { BVHLoader } from 'three/addons/loaders/BVHLoader.js';const clock = new THREE.Clock();let camera, controls, scene, renderer;let mixer, skeletonHelper;init();animate();const loader = new BVHLoader();loader.load( 'models/bvh/pirouette.bvh', function ( result ) {skeletonHelper = new THREE.SkeletonHelper( result.skeleton.bones[ 0 ] );skeletonHelper.skeleton = result.skeleton; // allow animation mixer to bind to THREE.SkeletonHelper directlyconst boneContainer = new THREE.Group();boneContainer.add( result.skeleton.bones[ 0 ] );scene.add( skeletonHelper );scene.add( boneContainer );// play animationmixer = new THREE.AnimationMixer( skeletonHelper );mixer.clipAction( result.clip ).setEffectiveWeight( 1.0 ).play();} );function init() {camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 1, 1000 );camera.position.set( 0, 200, 300 );scene = new THREE.Scene();scene.background = new THREE.Color( 0xeeeeee );scene.add( new THREE.GridHelper( 400, 10 ) );// rendererrenderer = new THREE.WebGLRenderer( { antialias: true } );renderer.setPixelRatio( window.devicePixelRatio );renderer.setSize( window.innerWidth, window.innerHeight );document.body.appendChild( renderer.domElement );controls = new OrbitControls( camera, renderer.domElement );controls.minDistance = 300;controls.maxDistance = 700;window.addEventListener( 'resize', onWindowResize );}function onWindowResize() {camera.aspect = window.innerWidth / window.innerHeight;camera.updateProjectionMatrix();renderer.setSize( window.innerWidth, window.innerHeight );}function animate() {requestAnimationFrame( animate );const delta = clock.getDelta();if ( mixer ) mixer.update( delta );renderer.render( scene, camera );}</script></body></html>

跳舞的火柴人

四、总结(充能)

把这两部分代码 结合一下 就可以完成 与足球共舞的火柴人 了。

怎么样,是不是觉得 Three.js 还是很有意思的。

扩展:其实 Three.js 的用途还是很多的

智慧城市房屋 3D 视图开发工业软件(CAD,CAE等)

总的来说 Three.js 就是来渲染 3D 效果的。目前 Three.js 是个很强大好用的 3D 渲染库,接下来我也会进行这方面的学习,到时候可以 和大家一起探索 Three.js 的世界。

五、写在最后(观世界杯有感)

随着时代的进步,科技的发展。我们的生活也正变得更加精彩和便利。世界杯的勇士们在足球场上挥洒汗水,去取得属于他们的荣誉。

同时像 格拉利什 这样的人的存在,也暖心了很多人,给这个世界增添了一分温暖。

其实每个人都可以 做一颗小星星,用自己的那一分热,去散发着自己的那一分 微弱而又耀眼的光!

本文链接地址:https://www.jiuchutong.com/zhishi/299847.html 转载请保留说明!

上一篇:微信小程序下拉刷新(微信小程序下拉菜单怎么做)

下一篇:【无标题】(无标题节啥意思)

  • 微信朋友圈位置如何定位到别的城市(微信朋友圈位置怎么定位到外地)

    微信朋友圈位置如何定位到别的城市(微信朋友圈位置怎么定位到外地)

  • 苹果手机微信屏幕黑色怎么变过来(苹果手机微信屏幕锁)

    苹果手机微信屏幕黑色怎么变过来(苹果手机微信屏幕锁)

  • 华为p40pro屏幕容易碎吗(华为p40pro显示屏多大)

    华为p40pro屏幕容易碎吗(华为p40pro显示屏多大)

  • 华为手机软件打不开就闪退(华为手机软件打不开怎么回事)

    华为手机软件打不开就闪退(华为手机软件打不开怎么回事)

  • app store无法处理您的请求(app store无法处理你的购买)

    app store无法处理您的请求(app store无法处理你的购买)

  • 手机怎么发40分钟的视频(40分钟视频手机怎么发微信)

    手机怎么发40分钟的视频(40分钟视频手机怎么发微信)

  • win10桌面文件夹路径是什么(win10桌面文件夹路径)

    win10桌面文件夹路径是什么(win10桌面文件夹路径)

  • 蓝牙耳机没电了提示音(蓝牙耳机没电了怎么充)

    蓝牙耳机没电了提示音(蓝牙耳机没电了怎么充)

  • 苹果11哪款是双卡(苹果11是双待的吗)

    苹果11哪款是双卡(苹果11是双待的吗)

  • 开启勿扰模式别人打电话提示什么(开启勿扰模式别人打电话进来会有显示吗)

    开启勿扰模式别人打电话提示什么(开启勿扰模式别人打电话进来会有显示吗)

  • 微信突然变成0位联系人(微信突然变成英文)

    微信突然变成0位联系人(微信突然变成英文)

  • hlk-aloo是什么手机(hlk al00是什么手机)

    hlk-aloo是什么手机(hlk al00是什么手机)

  • 苹果xs无面容是什么意思(苹果xs无面容多少钱)

    苹果xs无面容是什么意思(苹果xs无面容多少钱)

  • 带耳机会无故出现siri(带耳机会无故出声音吗)

    带耳机会无故出现siri(带耳机会无故出声音吗)

  • 快手能用id号登录吗(快手能用id号登陆吗)

    快手能用id号登录吗(快手能用id号登陆吗)

  • 苹果xr怎么设置个性铃声(苹果xr怎么设置铃声)

    苹果xr怎么设置个性铃声(苹果xr怎么设置铃声)

  • 键盘光怎么开(键盘开灯光怎么弄)

    键盘光怎么开(键盘开灯光怎么弄)

  • 米家app怎么授权小爱同学(米家app怎么授权播放器)

    米家app怎么授权小爱同学(米家app怎么授权播放器)

  • 苹果电池寿命80%要换吗(苹果电池寿命80%保修期内免费更换电池)

    苹果电池寿命80%要换吗(苹果电池寿命80%保修期内免费更换电池)

  • 微信怎么看已读不回(企业微信怎么看已读)

    微信怎么看已读不回(企业微信怎么看已读)

  • 饿了吗在哪给骑手好评(饿了么怎么@骑士)

    饿了吗在哪给骑手好评(饿了么怎么@骑士)

  • vivoz3i标准版有快充吗(vivoz3i标准版有OTG功能吗)

    vivoz3i标准版有快充吗(vivoz3i标准版有OTG功能吗)

  • switch可以用充电宝充电吗(switch可以用充电宝吗?)

    switch可以用充电宝充电吗(switch可以用充电宝吗?)

  • 美团没骑手接单怎么办(美团没骑手接单可以退款吗)

    美团没骑手接单怎么办(美团没骑手接单可以退款吗)

  • 怎么重设wifi密码步骤(怎么重设wifi密码)

    怎么重设wifi密码步骤(怎么重设wifi密码)

  • 机械硬盘吱吱响正常吗(机械硬盘吱吱响读不出)

    机械硬盘吱吱响正常吗(机械硬盘吱吱响读不出)

  • 苹果手机下载了丝瓜视频怎么删除(苹果手机下载了未受信任的软件)

    苹果手机下载了丝瓜视频怎么删除(苹果手机下载了未受信任的软件)

  • 有关docxtemplater的知识(有关厉元朗的小说)

    有关docxtemplater的知识(有关厉元朗的小说)

  • 普通发票的金额包含增值税吗
  • 无形资产的税费计入
  • 赔付开票
  • 货运代理开票系统如何开票
  • 租办公室还要交什么税
  • 没有工会 还需要交钱吗
  • 一般纳税人如何抵扣进项税
  • 没开发票可以确认收入吗?
  • 当月计提的工资与次月发放数不同
  • 收到办公用品的普票怎么入账
  • 申报个人所得税的详细流程
  • 实收资本重复交的印花税可以申请退税吗?
  • 被吊销营业执照的公司如何注销
  • 特定行业职工取得的工资、薪金所得,如何计算个人所得税?
  • 营改增后如何对建安企业进行税务稽查
  • 自然人借款给企业的涉税风险
  • 研发支出资本化的条件
  • 实收资本里的钱怎么做账
  • 工商年报报表
  • 银行承兑汇票贴现
  • 差旅费进项可以跨月抵扣吗
  • 移动通信定额发票
  • 2019年小微企业增值税起征点为月销售额
  • 出售股权收入会计分录
  • 从贸易公司购买来的货物可以退税吗
  • 主营业务成本的二级科目有哪些
  • win10自动关机方法
  • linux查看du
  • 汇票线下清算什么时候能到账
  • SSDP Discovery Service 是什么可以禁用吗
  • 源码阅读技巧
  • vue3.0教程
  • js数组方法大全
  • opencv实战项目教程
  • 增资扩股税务处罚标准
  • 公司法关于公司变更后权利义务的规定
  • 一般纳税人哪些行业可以简易计税
  • 织梦如何使用
  • 如何解决在大学的压力英语作文
  • mysql5.7.32安装
  • 事务所的账务处理
  • 网络贷款需要缴费吗
  • 计提怎么理解
  • 零申报年报需要哪些表格
  • 评估费用由谁承担
  • 什么是电子承诺
  • 账务核对的主要内容
  • windowsserver2008r2开启远程桌面
  • 销项发票属于哪个科目
  • 水利工程施工税率是多少
  • 支付的劳务派遣服务费计入什么科目
  • 总公司发票可以在分公司使用吗
  • 2021年财务报表申报
  • 每个单位都要缴纳五险一金吗
  • 做好成本会计的基础工作主要对企业成本管理有什么意义
  • 360 sesvc.exe
  • win8系统自带截图
  • windows vista升级
  • 通过扣缴义务人申报和综合所得年度自行申报
  • mac更换软件图标
  • centos7 lo
  • pps是什么文件
  • win10app商店
  • 系统导航栏已禁用怎么办
  • glrotatef函数
  • python迭代器的作用
  • nodejs查找文件
  • python变量字符串等函数
  • JavaScript中的case
  • shell脚本实际运用
  • 用python写个脚本
  • 安卓音频分析软件
  • 卸载python后模块库还用卸载吗
  • 小规模纳税人税率2024
  • 国家对供暖企业更换主管道有没有年限?
  • 地税申报打印不了发票
  • 常规巡察和专项巡察相结合
  • 国家税务局网上电子税务局官网天津
  • 中国税务报优秀文学作品年度评选
  • 芜湖地税微机编码是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设