利用在线绘制3d几何图形工具分析投影变化
业余写了个在线绘制几何图形工具,工具链接如下:
https://tinygltf.xyz/drawgeometry/

通过脚本代码在可视化窗口添加对应的点,线段,成像平面推到投影后坐标的计算:
点A通过O点连线投影到红色成像平面,相交于点A'
A点坐标为(2,2,-4) OC长度等于相机的near值
A点投影到YZ平面相交于点D,所以AD长度等于A点的X坐标记为Px
D点再投影到XZ平面相交于点E,所以DE的长度等于A点的Y坐标记为Py
同理A'投影到YZ平面相交于点B,B再投影到XZ平面相交于点C
这时候其实点A'的X和Y的坐标即为线段A'B和BC的长度
又因为三角形OA'B 和 OAD相似三角形,所以A'B / AD = OB / OD;
又因为三角形OCB和三角形OED相似得到OB / OD = OC / OE; 所以A'B / AD = OC / OE; 又因为OC = -near, OE为A点Z坐标(记为Pz)
所以A'B = (-near / pz ) * Px;
同理因为三角形OCB和三角形OED相似 BC / DE = OC / OE;
所以BC = (-near / pz ) * Py;
利用在线绘制3d几何图形工具分析投影变化的更多相关文章
- 攻击者利用的Windows命令、横向渗透工具分析结果列表
横向渗透工具分析结果列表 https://jpcertcc.github.io/ToolAnalysisResultSheet/ 攻击者利用的Windows命令 https://blogs.jpcer ...
- 使用MAT(Memory Analyzer Tool)工具分析dump文件--转
原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...
- NLP实现文本分词+在线词云实现工具
实现文本分词+在线词云实现工具 词云是NLP中比较简单而且效果较好的一种表达方式,说到可视化,R语言当仍不让,可见R语言︱文本挖掘——词云wordcloud2包 当然用代码写词云还是比较费劲的,网上也 ...
- 使用OpenGL ES绘制3D图形
如果应用定义的顶点不在同一个平面上,并且使用三角形把合适的顶点连接起来,就可以绘制出3D图形了. 使用OpenGL ES绘制3D图形的方法与绘制2D图形的步骤大致相同,只是绘制3D图形需要定义更多的 ...
- 利用PowerDesigner绘制PDM生成SQL Server数据库
PowerDesigner是个很强大的建模工具,可以利用它绘制各种图形,本文利用该工具绘制PDM,进而生成SQL Server数据库. 比如绘制一个简单的学生选课.教师授课管理系统的PDM: pk表示 ...
- Android进阶笔记12:Manymo(在线安卓系统模拟器工具)
Manymo: 在线安卓系统模拟器工具是一款启动速度快,且在浏览器中就能运行流畅.你可以使用它来测试你的安卓应用,他最多能支持42种屏幕尺寸和系统版本. 长久以来,Android开发者面临的困境之一就 ...
- 利用JFreeChart绘制股票K线图完整解决方案
http://blog.sina.com.cn/s/blog_4ad042e50100q7d9.html 利用JFreeChart绘制股票K线图完整解决方案 (2011-04-30 13:27:17) ...
- 【Python 16】分形树绘制4.0(利用递归函数绘制分形树fractal tree)
1.案例描述 树干为80,分叉角度为20,树枝长度小于5则停止.树枝长小于30,可以当作树叶了,树叶部分为绿色,其余为树干部分设为棕色. 2.案例分析 由于分形树具有对称性,自相似性,所以我们可以用 ...
- Java利用hanlp完成语句相似度分析的案例详解
分享一篇hanlp分词工具使用的小案例,即利用hanlp分词工具分析两个中文语句的相似度的案例.供大家一起学习参考! 在做考试系统需求时,后台题库系统提供录入题目的功能.在录入题目的时候,由于题目来源 ...
随机推荐
- Qt configure 参数说明(中文)
Qt configure 在编译QT前,可加各种参数来定制自己想要的QT库.这对需要裁减QT库的朋友来说非常重要.对于如何编译QT,可以参考:http://hi.baidu.com/agassi%5F ...
- shellcode超级反杀
shellcode超级免杀 作者声明: 本文章属于作者原创,不能转载,违反网络安全法自己承担.这里只供学习使用. 日期: 2019-12-30 我试过了电脑管家,火绒安全,360....一系列杀毒软件 ...
- .Net Core Web Api实践之中间件的使用(一)
前言:从2019年年中入坑.net core已半年有余,总体上来说虽然感觉坑多,但是用起来还是比较香的.本来我是不怎么喜欢写这类实践分享或填坑记录的博客的,因为初步实践坑多,文章肯定也会有各种错误,跟 ...
- spring之第一个spring程序
spring具体描述: 轻量级 IOC:依赖注入 AOP:面向切片编程 容器:spring是一个容器,包含并且管理应用的生命周期 框架 一站式 一.搭建spring开发环境 在eclipse中新建一个 ...
- 1042 字符统计 (20 分)C语言
请编写程序,找出一段给定文字中出现最频繁的那个英文字母. 输入格式: 输入在一行中给出一个长度不超过 1000 的字符串.字符串由 ASCII 码表中任意可见字符及空格组成,至少包含 1 个英文字母, ...
- 01_elementUI tree 插件 去图标
1:elementUI饿了吗前端ui框架,结合vue开发过程中,是不是对tree组件很头疼呢?是不是想自定义图标或者去掉所有图标只留末级checkbox呢? 实现很简单添加几行css代码完美搞定!!! ...
- Session是怎么实现的?存储在哪里?
为什么有session? 首先大家知道,http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你. 那么,在一些场合,确实需要服务器记住当前用户怎么办 ...
- 使用vue-baidu-map解析geojson
这是后台给我的gejson: {"type":"FeatureCollection","features":[{"type&quo ...
- Deepin Linux 实体机安装
Deepin Linux 实体机安装 1.下载ISO镜像并刻录到U盘上 系统ISO镜像下载 深度技术 刻录工具下载 深度技术(下方有深度启动盘制作工具下载) 这两个都下载好之后,打开刻录工具,选择镜像 ...
- GeneXus 16 如何实现自动化测试和发布
CI/CD(持续集成/持续发布)是一种软件开发策略,以使公司能够尽可能快速.高效地给客户发布新功能.为了能够实现CI/CD,就需要通过PipeLine对整个软件过程进行一系列的节点管理,必须将每个阶段 ...