当前位置: 首页 > wzjs >正文

中国最大的做网站的公司如何制作网站教程

中国最大的做网站的公司,如何制作网站教程,外贸网站建设及推广,余姚微信网站建设嗨,我是小路。今天主要和大家分享的主题是“vuethreeJs 绘制圆形”。 今天找到一个用three.js绘制图形的项目,主要是用来绘制各种形状。 项目案例示意图 1.THREE.ShapeGeometry 定义:是 Three.js 中用于从 2D 路径形状&#xff08…

        嗨,我是小路。今天主要和大家分享的主题是“vue+threeJs 绘制圆形”。        

今天找到一个用three.js绘制图形的项目,主要是用来绘制各种形状。

项目案例示意图

1.THREE.ShapeGeometry

定义:是 Three.js 中用于从 2D 路径形状(Shape)生成 3D 几何体的类。它非常适合用来创建复杂的 2.5D 或拉伸形状的几何体

2.启用 Wireframe

定义:"wireframe" 是一种渲染模式,以线框的形式显示几何体的边,而不是填充面。这在可视化模型结构、调试复杂几何体或创建特定视觉效果时非常有用。

3.THREE.ExtrudeGeometry

定义:用于将 2D 形状 挤压成 3D 几何体。原来的二位图如下:

参数说明

steps

分层数

depth

拉伸深度

bevelEnabled

是否倒角

bevelThickness

控制倒角的厚度

bevelSize

0 无倒角  0.5 小倒角  1 标准倒角  2.0+ 强烈倒角

bevelSegments

倒角细分段数

二、实例代码

<!--绘制各种图形-->
<template><div class="pageBox"><div class="leftBox" ref="leftRef"></div></div></template>
<script setup>
import { onMounted, onUnmounted, reactive, ref } from 'vue';
import * as THREE from 'three';
// 引入轨道控制器扩展库OrbitControls.js
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { getRandomColor, createLight } from '../utils/commonThree';
const leftRef = ref();
// 定义相机输出画布的尺寸(单位:像素px)
let width = window.innerWidth; //宽度
let height = window.innerHeight; //高度
// 创建3D场景对象Scene
const scene = new THREE.Scene();
//设置背景色
scene.background = new THREE.Color(0x646d59);const camera = new THREE.PerspectiveCamera(75, width / height, 0.1, 1000);
//三角形缩放过大时,会形成多种三角形形成的背景图
camera.position.z = 100;// 创建渲染器对象
const renderer = new THREE.WebGLRenderer();let material;const createCircle = (color = 0xff0000, x = 0, y = 0, z = 0, rx = 0, ry = 0, rz = 0, s = 1) => {const circleRadius = 50;const shape = new THREE.Shape();shape.moveTo(0, circleRadius);shape.quadraticCurveTo(circleRadius, circleRadius, circleRadius, 0);shape.quadraticCurveTo(circleRadius, -circleRadius, 0, -circleRadius);shape.quadraticCurveTo(-circleRadius, -circleRadius, -circleRadius, 0);shape.quadraticCurveTo(-circleRadius, circleRadius, 0, circleRadius);// const geometry = new THREE.ShapeGeometry(shape,10000);const extrudeSettings = {steps: 2,           // 分层数depth: 10,           // 拉伸深度bevelEnabled: true,// 是否倒角bevelThickness: 1,//控制倒角的厚度bevelSize: 0.5,//0 无倒角  0.5 小倒角  1 标准倒角  2.0+ 强烈倒角bevelSegments: 3 //倒角细分段数};const geometry = new THREE.ExtrudeGeometry(shape, extrudeSettings);material = new THREE.MeshPhongMaterial({ color: color, side: THREE.DoubleSide, wireframe: true });// material = new THREE.MeshStandardMaterial({ color: color, side: THREE.DoubleSide, wireframe: true })const circle = new THREE.Mesh(geometry, material);circle.scale.set(s, s, s);return circle;
}onMounted(() => {initData()//添加相机空间const controls = new OrbitControls(camera, renderer.domElement);controls.enableDamping = true; // 开启阻尼controls.dampingFactor = 0.02; // 设置阻尼系数controls.autoRotate = true; // 开启自动旋转// 如果OrbitControls改变了相机参数,重新调用渲染器渲染三维场景controls.addEventListener('change', function () {renderer.render(scene, camera); //执行渲染操作});//监听鼠标、键盘事件renderer.setSize(width, height); //设置three.js渲染区域的尺寸(像素px)//将innerHTML置空,避免append重复添加渲染leftRef.value.innerHTML = ''leftRef.value.append(renderer.domElement);})const initData = () => {createLight(scene);const circle = createCircle(0x00f000, 120, 250, 0, 0, 0, 0, 1);scene.add(circle);render();
}
function render() {requestAnimationFrame(render);renderer.render(scene, camera);
}
onUnmounted(() => {//释放内存renderer.dispose();
})</script>
<style scoped lang="less">
.pageBox {width: 100%;height: 100vh;padding: 0;margin: 0;position: fixed;top: 0;left: 0;display: flex;justify-content: space-between;align-items: center;.rightBox {width: 100%;height: 100%;}
}
</style>

三、总结

       持续的刻意练习,感觉每天都有新的收获!不仅学会了如何绘制圆形,还初步掌握,如何将2D图形拉伸成3D效果。

都看到这里了,记得【点赞】+【关注】哟。

http://www.dtcms.com/wzjs/120218.html

相关文章:

  • php工具箱是直接做网站的吗营销推广活动策划书模板
  • ps做网站头部网站搭建谷歌seo
  • 网站闪图怎么做的公司网站首页设计
  • 工信部网站黑名单查询百度地图在线查询
  • 长沙seo网站建设袁飞最好西安seo技术培训班
  • 武汉做网站及logo的公司app下载量推广
  • 沈阳世纪兴网站建设网上怎么发布广告
  • 网站方案app注册推广拉人
  • 洛阳建设三轮网站品牌策划设计
  • 南宁建设银行缴费网站西安网络优化哪家好
  • 个人 备案 经营性网站备案爱客crm
  • dw网站log怎么做中国婚恋网站排名
  • 新疆人微信推广网站在哪里做广东东莞疫情最新消息今天又封了
  • 网站 栏目 英语最新新闻事件
  • 工程建设的招标在哪个招标网站bt兔子磁力天堂
  • 5m带宽做视频网站品牌营销活动策划方案
  • php网站iis设置现在最火的推广平台有哪些
  • flash网站建设技术百度快照客服电话
  • 做电影网站要懂代码百度seo排名优化教程
  • win2003 iis做网站百度快速排名优化工具
  • 网站源码怎么搭建搜狗站长工具平台
  • 苏州网站建设永阳网络厦门网站建设公司
  • 签到做任务赚钱的网站外贸seo网站推广
  • web网站模板免费谷歌 翻墙入口
  • 做任务打字赚钱的网站成人技术培训班有哪些种类
  • 弄网站赚钱吗郑州seo线上推广系统
  • 漯河 做网站百度收录申请入口
  • 网站模板安全管理系统推广软文范例大全500
  • 销售网站制作怎么做新网域名注册
  • 海口市公安局门户网十大seo公司