Java使用joml计算机图形学库,将3D坐标旋转正交投影转为2D坐标

最近遇到了一个困扰我许久的难题,现将解决方案分享出来

由于我们的项目侧重点在前端绘图,导致了前后端工作量不协调,我后端接口很快就能写完,而前端一个图要画好久,领导见状将前端的任务分到后端一部分用Java代码来实现,然后给前端提供接口

而我接到的任务就是将Echarts中绘制三维图形的点旋转后投影为2D坐标,当我一个大专生在了解需求,并知道这涉及到线性代数和计算机图形学后,我的想法是这样的:

我想了很多种方法,一开始在网上搜Java相关资料,但是网上好像没有人处理过这种情况,找到的帖子都是做Java图形化的,他们所谓的坐标旋转是直接用眼球看到的界面效果,跟我想要的计算完全不同

而后我又拜托ChatGPT帮我写了几版,不得不说的确帮我写出来了,而且自己测试效果还可以,但是前端调接口后点数太多了,旋转后的坐标直接乱了,最终我在网上游荡了很久找到了解决方案,目前效果还算不错

功能实现

首先在pom.xml中添加joml的Maven坐标,该库是一个轻量级数学库,专门用于处理3D图形的数学计算

<!-- 计算机图形学计算库 -->
<dependency><groupId>org.joml</groupId><artifactId>joml</artifactId><version>1.10.5</version>
</dependency>

然后创建个主类编写测试代码,方法很简单直接调用就好啦

import org.joml.Matrix3d;
import org.joml.Vector3d;public class Application {public static void main(String[] args) {// 构建一个X轴旋转90°的旋转对象Matrix3d matrix = new Matrix3d().rotateX(Math.toRadians(90));// 构建一个3D坐标点Vector3d point = new Vector3d(10, 10, 10);// 执行旋转Vector3d transform = matrix.transform(point);// 打印旋转后的角度System.out.println(transform.x);System.out.println(transform.y);System.out.println(transform.z);}}

很悲哀,这么简单的几行代码困扰了我两三天才把功能做出来,见识少就是不行啊

封装为Springboot接口

这里我就不写封装接口的过程了,我会把代码地址放到文章结尾,有需要请自行获取,这里展示一下接口的使用和效果

首先打开Echarts的官网,分别打开三维折线图和二维折线图,用我给的这组测试数据画出一个三维折线图,或者自己有测试数据也可以

var data = [[0, 0, 0], [8, 8, 6], [18, 12, 4], [13, 21, 7]];

然后调用写好的rotateProj接口,将坐标和轴旋转角度传入,查看效果

不进行旋转,直接看正面

Z轴旋转90°

X轴旋转90°

Z轴旋转45°

有一点比较可惜,经过测试改代码仅支持单轴旋转,如果同时旋转两个轴以上效果就会有问题,不过单轴旋转已经可以满足我项目的需求,就不再花费时间研究这个东西了,有兴趣可自行钻研joml这个框架,如果您解决了多轴旋转的问题还请回来留个言,可以帮助到更多人

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度解读AIGC存储解决方案

5月26日&#xff0c;2023数据基础设施技术峰会在苏州举办&#xff0c;腾讯云首席存储技术专家温涛受邀出席并分享了腾讯云领先的存储技术在AIGC场景中的应用&#xff0c;通过对AIGC业务流程和场景的提炼&#xff0c;从内容生成、内容审核和内容智理三要素介绍了如何智能的存储和…

硬件大熊原创合集(2023/03更新)

3月份更新篇章&#xff1a; 《智能家居行业研究与场景分析》 中国全屋智能行业产业链总览图 为什么有些SRRC型号核准代码要加“M” 和菜头在聊ChatGPT时写过一句话&#xff1a;"大家更愿意通过效果去理解和认识一件事&#xff0c;不大喜欢通过原理和机制去理解一件事"…

DeepSpeed-Chat 打造类ChatGPT全流程 笔记一

这篇文章主要是对DeepSpeed Chat的功能做了一些了解&#xff0c;然后翻译了几个主要的教程了解了一些使用细节。最后在手动复现opt-13b做actor模型&#xff0c;opt-350m做reward模型进行的chatbot全流程训练时&#xff0c;踩了一些坑也分享出来了。最后使用训练后的模型做servi…

从大型语言模型LLM走向人工通用智能AGI的改进方向(public)

从大型语言模型走向人工通用智能AGI 返回论文和资料目录 1.导读 这篇博客主要基于《Sparks of Artificial General Intelligence: Early experiments with GPT-4》文中第9和第10节、以及我自己对当前LLM和AGI的理解。给出大型语言模型走向AGI时 改进的方向。 2.14个问题及改…

2023CPA会计- 开头两章【刷题】

2023&#xff0c;我要一次通过注册会计师考试。 以题代学&#xff1a;因为有很多题目是糅合了前后的知识点&#xff0c;其出题模式并非按照专题划分 会计基本假设和会计基础 1. 会计要素及其计量 把会计四张表给记起来&#xff0c;啥都容易&#x1f937;‍♂️ 1.资产负债表 …

计算机会计学试题,会计电算化考试试题 (2010)

一、单项选择题&#xff1a; 1.一般通用会计报表软件&#xff0c;报表中的组合单元是指(D) A、区域 B、同一行内的两个单元 C、单元的合并 D、同一行内的多个相邻的同类型的单元组成的区域 2.会计软件运行所需要的硬件环境是指(A) A、计算机(或计算机网络)硬件环境 B、计算机(或…

计算机会计数据处理流程是怎样的,实现会计电算化后,会计数据的处理流程依旧和手工..._高级会计师_帮考网...

bangkafan 高分答主 06-16 TA获得超过8931个赞 一、手工与电算化会计信息系统的数据处理流程&#xff1a; 1、相同点&#xff1a; ①数据处理步骤相似&#xff1b; ②会计信息相同且最终目标一致&#xff1b; ③遵守的会计法规和会计准则相同。 2、不同点&#xff1a; 在手工会…

中国大学MOOC政府会计实务题库及答案

选择题&#xff08;答案解析在优题宝&#xff09; 1.下列选项中&#xff0c;有关收付实现制的表述正确的是(B)。 A.收付实现制以款项收付的责任或义务是否已经发生为标准。 B.收付实现制以款项是否已经收到或付出作为核算标准。 C.收付实现制能正确地反映各期的成本费用情况…

中级财管电脑操作不会用计算机,中级会计财务管理的综合题电脑怎么答题?

考生询问&#xff1a;中级会计财务管理的综合题电脑怎么答题&#xff1f;相关的回答就在下文当中&#xff0c;考生们就和东奥小编一同去查看一下吧&#xff01; 一、中级会计财务管理的综合题电脑怎么答题&#xff1f; 东奥小编建议大家在考试前就提前熟悉一下机考系统&#xf…

怎么制作一个笔试题库?会计笔试题库中的题型分析?

目前各个考试都会有对应的笔试题库供大家学习&#xff0c;因为现在笔试题库作为了一种产品&#xff0c;目前我国的笔试考试越来越多了&#xff0c;笔试题库也层出不穷。下面我就来介绍一下笔试题库&#xff0c;我们如何选择一个全面好用的笔试题库。福昕知翼有关于笔试题库制作…

关于使用腾讯云腾讯(即时通讯SDK)遇到的问题

公司项目中需要进行服务器控制用户端操作 由于前期规划提出的需求&#xff0c;放弃了推送和WebSocket 然后转换思路使用即时通讯实现C/S&#xff0c;根据通话消息内容进行判断做出相应的操作 好了。不啰嗦开整。 --------------------------------------------------------…

腾讯云图(TCV)使用指南

简介 腾讯云图&#xff08;Tencent Cloud Visualization&#xff0c;TCV&#xff09; 是腾讯云旗下的一站式数据可视化展示平台&#xff0c;旨在帮助用户快速通过可视化图表展示海量数据&#xff0c;10 分钟零门槛打造出专业大屏数据展示。精心预设多种行业模板&#xff0c;极…

观《扫黑 决战》有感

点击上方 "大数据肌肉猿"关注, 星标一起成长 后台回复【加群】&#xff0c;进入高质量学习交流群 2021年大数据肌肉猿公众号奖励制度 本来今天想发篇干货的&#xff0c;但昨晚去电影院看完《扫黑 决战》这部电影后&#xff0c;有些话想说说&#xff0c;所以今天就随便…

ChatGPT解决了我的出行规划焦虑

#我的五一出行规划# 五一旅游季又将到来&#xff0c;许多人为了规划理想的行程而苦恼&#xff0c;需要投入相当时间来筛选各种信息。然而&#xff0c;现在有了Chat GPT&#xff0c;安排美好旅途变得异常简单。只要您告诉GPT您的日期和目的地&#xff0c;不到30秒就可以生成个性…

四季度业绩大涨、文心一言上线在即,百度估值逻辑酝酿“蝶变”

本月开始&#xff0c;上市公司迎来了年报披露周期。经历了经济下行压力、疫情防控、全球局势动荡的2022年&#xff0c;这份答卷注定不会容易。 2月22日&#xff0c;百度发布了2022年四季度及全年业绩报告。2022年全年&#xff0c;百度实现营收1236.75亿元&#xff0c;超分析师预…

利用TabNet进行股票长线预测

利用TabNet模型进行股票长线预测 提示&#xff1a;本篇文章只提供一个思路&#xff0c;因本人是金融小白&#xff0c;搭建模型时所参考的股票指标并不完善&#xff0c;所以结果准确性无法保证&#xff0c;各位不要将结果作为投资参考&#xff01;&#xff01;&#xff01; 文章…

ChatGPT文章:C语言开发技巧

------ Oracle中文开发者社区 ------ 如果你想要学习编程,关注本博客,持续获得技术支持,持续获得技术咨询 java开发企业官方账号 Oracle中国官方账号 Java中国管理部 全网粉丝30万 华为云享专家 阿里专家博主 CSDN内容合伙人 CSDN原力计划作者 51CTO专家博主 CSDN博客V账号 …

Azure OpenAI 官方指南 01|GPT-3 的原理揭秘与微调技巧

Azure OpenAI 服务在微软全球 Azure 平台正式发布后&#xff0c;迅速成为众多用户最关心的服务之一。 Azure OpenAI 服务允许用户通过 REST API 访问 OpenAI 的强大语言模型&#xff0c;包括 GPT-3、Codex 和 Embeddings 模型系列。本期&#xff0c;我们将为您揭秘 Azure Open…

集成chatGPT4.0的超强编码软件cursor使用教程

最进在学习上线vue遇到很多问题&#xff0c;发现了这款超级厉害的软件&#xff0c;但没有使用教程&#xff0c;可能是因为刚刚发行的原因吧。今天简单介绍一下。 直接在cursor官网下载压缩包&#xff0c;然后解压&#xff0c;桌面就会有相应的快捷键了&#xff0c;非常方便。 …

观点|安装数据安全“刹车”,释放数据要素产能

一辆没有“刹车”的跑车&#xff0c;你敢开多快&#xff1f; 近年来&#xff0c;人工智能技术的不断迭代与持续演进&#xff0c;离不开算法的突破与算力的提升&#xff0c;更是得益于近几十年来信息化技术应用与发展过程中持续积累的海量数据资产。伴随着数据仓库、数据湖、云服…