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

音乐网站建设课的期末报告书阿里云可以建设网站吗

音乐网站建设课的期末报告书,阿里云可以建设网站吗,微信系统平台开发,南宁住房和城乡建设部网站要实现完美的正六边形蜂巢排列,关键在于精确计算每个六边形的顶点位置和排列方式。以下是Cesium1.106中优化后的完整实现方案: 正六边形几何原理 正六边形的特性: 所有边长相等(设为radius)中心到每个顶点的距离相等…

要实现完美的正六边形蜂巢排列,关键在于精确计算每个六边形的顶点位置和排列方式。以下是Cesium1.106中优化后的完整实现方案:

正六边形几何原理

正六边形的特性:

  • 所有边长相等(设为radius)
  • 中心到每个顶点的距离相等(外接圆半径)
  • 相邻六边形中心间距为 √3 * radius
  • 行间距为 1.5 * radius
<template><div id="cesiumContainer"></div>
</template><script setup>
Cesium.Ion.defaultAccessToken = '你的defaultAccessToken';
import { onMounted } from "vue";
import * as Cesium from "cesium";
import "./Widgets/widgets.css";window.CESIUM_BASE_URL = "/"; // 设置Cesium静态资源路径(public目录)onMounted(() => {// 创建完美正六边形蜂巢网格function createPerfectHexagonalGrid(viewer, center, radius, rows, cols) {// 计算六边形几何参数const hexRadius = radius; // 外接圆半径const sideLength = hexRadius; // 正六边形边长等于外接圆半径const horizontalSpacing = Math.sqrt(3) * hexRadius;const verticalSpacing = 1.5 * hexRadius;// 创建所有六边形实例const instances = [];for (let row = 0; row < rows; row++) {// 计算当前行的水平偏移(蜂巢排列)const rowOffset = (row % 2) * (horizontalSpacing / 2);for (let col = 0; col < cols; col++) {// 计算中心点坐标(精确蜂巢排列)const centerX = center.longitude +(col * horizontalSpacing) +rowOffset;const centerY = center.latitude -(row * verticalSpacing);// 生成正六边形顶点(一个顶点朝正上方)const positions = [];for (let i = 0; i < 6; i++) {const angle = i * Math.PI / 3; // 60度间隔,0度朝上const x = centerX + hexRadius * Math.sin(angle);const y = centerY + hexRadius * Math.cos(angle);positions.push(x, y, 0);}// 创建几何实例instances.push(new Cesium.GeometryInstance({geometry: new Cesium.PolygonGeometry({polygonHierarchy: new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromDegreesArrayHeights(positions)),height: 0}),attributes: {color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.fromHsl((row / rows + col / cols) % 1.0, // 色相变化0.9, // 饱和度0.7, // 亮度0.8  // 透明度))},id: `hex_${row}_${col}`}));}}// 添加到场景viewer.scene.primitives.add(new Cesium.Primitive({geometryInstances: instances,appearance: new Cesium.PerInstanceColorAppearance({flat: true,translucent: false,renderState: {depthTest: {enabled: true},lineWidth: Math.min(2, viewer.scene.maximumAliasedLineWidth)}}),asynchronous: false,allowPicking: true // 允许拾取}));}// 初始化Cesium Viewerconst viewer = new Cesium.Viewer('cesiumContainer', {terrainProvider: Cesium.createWorldTerrain(),imageryProvider: new Cesium.ArcGisMapServerImageryProvider({url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'})});// 设置初始视角viewer.camera.flyTo({destination: Cesium.Cartesian3.fromDegrees(-75.0, 40.0, 100000),orientation: {heading: 0.0,pitch: -Cesium.Math.PI_OVER_TWO,roll: 0.0}});// 创建完美正六边形蜂巢网格createPerfectHexagonalGrid(viewer,{ longitude: -75.0, latitude: 40.0 }, // 中心点0.005, // 六边形外接圆半径(度)15,    // 行数15     // 列数);// 添加交互功能const handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);handler.setInputAction(function (movement) {const pickedObject = viewer.scene.pick(movement.endPosition);if (Cesium.defined(pickedObject) && pickedObject.id) {console.log("点击了正六边形:", pickedObject.id);// 高亮显示被点击的六边形viewer.scene.primitives.forEach(function (primitive) {if (primitive instanceof Cesium.Primitive) {primitive.getGeometryInstanceAttributes(pickedObject.id).color =Cesium.ColorGeometryInstanceAttribute.toValue(Cesium.Color.YELLOW.withAlpha(0.9));}});}}, Cesium.ScreenSpaceEventType.LEFT_CLICK);// https://blog.csdn.net/weixin_40580834/article/details/148141703
})
</script><style scoped>
* {margin: 0;padding: 0;
}#cesiumContainer {width: 100wh;height: 100vh;
}.toolbar {position: absolute;top: 10px;left: 50%;transform: translateX(-50%);background-color: rgba(42, 42, 42, 0.8);color: white;padding: 8px 15px;border-radius: 5px;display: flex;gap: 15px;align-items: center;z-index: 100;
}.toolbar button {background-color: #4CAF50;border: none;color: white;padding: 6px 12px;text-align: center;text-decoration: none;display: inline-block;font-size: 14px;border-radius: 4px;cursor: pointer;transition: background-color 0.3s;
}.toolbar button:hover {background-color: #45a049;
}.toolbar span {font-size: 14px;
}
</style>

​​顶点生成算法​​:

// 一个顶点朝正上方的正六边形
const angle = i * Math.PI / 3; // 60度间隔
const x = centerX + hexRadius * Math.sin(angle);
const y = centerY + hexRadius * Math.cos(angle);

​​精确的蜂巢排列​​:

const horizontalSpacing = Math.sqrt(3) * hexRadius;
const verticalSpacing = 1.5 * hexRadius;
const rowOffset = (row % 2) * (horizontalSpacing / 2);

颜色分布优化​​:

Cesium.Color.fromHsl((row / rows + col / cols) % 1.0, // 平滑色相变化0.9, 0.7, 0.8
)

http://www.yayakq.cn/news/250970/

相关文章:

  • 家具网站素材怎么做网站何做网站
  • 中山专业门户网站制作咨询凡科网站内容怎么做效果好
  • 定远网站开发室内设计师联盟app
  • 昆明网站建设建站技巧外包的工作值得做吗
  • 企业手机网站建设案例shanxi建设银行网站首页
  • 惠州建设公司网站类似钉钉的企业管理软件
  • 网站页面图片尺寸手机网站建设报价多少
  • 德州市经济开发区建设局网站设计官网的
  • 坑梓做网站长沙宁乡建设网站
  • 有关企业电子网站建设论文上海做网站定制
  • 用asp做网站登录页面网站建设技术发展趋势预测
  • 黑龙江省城乡和住房建设厅网站宁津 做网站
  • 关于水果的网站建设手机网站开发协议
  • 教育网站建设网站html5网站源代码
  • 万网 网站建设合同wordpress 手机 看视频
  • 网站建设大约要多少钱南宁网站排名优化电话
  • 建立网站有什么用wordpress数据备份插件
  • 建网站用什么系统好wordpress本地导出
  • 网站模板免费推荐怎么看wordpress数据库位置
  • 重庆科技网站设计模板宁波网站关键词优化代码
  • 个人做游戏网站seo短视频网页入口引流方法是什么
  • 网站运营编辑网站开发系统搭建
  • 网站开发兼容极速字体颜色推荐网站制作一般收费
  • 网站建设开发价格宁夏教育资源公共服务平台
  • 旅游网站开发流程wordpress页面伪静态nginx
  • 从那些方面建设网站有没有做装修的大型网站而不是平台
  • 商城网站源码免费7k7k小游戏在线玩
  • 网站建设内容的重点潍坊哪个网站公司做优化好
  • 设计素材网站排行榜前十名山东城乡和住房建设厅网站
  • 罗浮视窗网站建设wordpress图片自动分页插件