关于模型与视口相切与视图最大化的方法
上周在群里问了一下MAX里关于视口与模型相切的方法,感谢 .昕 给了答案.
fn focusoutline obj= (if obj!=undefined do(max zoomext sel allviewPt=(Inverse(getViewTM())).row4;targPt=obj.centerc=Freecamera pos:viewptc.type=#target;c.target.pos=targptc.orthoProjection =truebb= nodeGetBoundingBox obj c.transformsize = bb[2]-bb[1]newpos=(((bb[1]+bb[2])/2)*c.objecttransform)angle_w=2*atan((size[1]/2)/(distance viewpt targpt))angle_l=2*atan((size[2]/2*(renderWidth*1.0)/renderHeight)/(distance viewpt targpt))ra=(if angle_w>angle_l then angle_w else angle_l)c.fov=rac.type=#freemove c (newpos-targpt)c.type=#targetc.target.pos=newpos) )focusoutline $
可是这个方法不可以在透视图视角下实现.
又查阅了一下帮助文档.找到了用来模拟试图最大化的方法(相当于按快捷键Z的效果).
虽然这个方法做不到最大边相切,但是已经能解决问题了.
fn ZE_Cam cam objs = (local max2, fov, asp, vfn maxof vals = (local v=vals[1];for v1 in vals do (if v1 > v do v=v1);v)fov=0asp=(renderWidth as float)/renderHeightin coordsys cam(for obj in objs where obj != cam do(if obj.min.z >=0 do continuev = maxof #((abs obj.max.x),(abs obj.min.x),(abs (obj.max.y*asp)),(abs (obj.min.y*asp)))fov = maxof #(fov,(2*atan(-v/obj.min.z)))))cam.fov=fov ) cam=$camera01 ZE_Cam cam $*
而且最重要的是得到的是透视图,有时间再看看两个可以整合起来不.
转载于:https://www.cnblogs.com/3dxy/p/4519851.html
关于模型与视口相切与视图最大化的方法相关推荐
- 织梦 PHP 字段 调用,织梦dede网站内容模型普通文章调用自定义图片字段的方法(和调用...
织梦DedeCMS网站内容模型普通文章调用自定义图片字段的方法: 我们首先需要创建一个自定义函数, 找到:/include/extend.func.php ,在 function GetOneImgU ...
- 【eoe教程】Android中自定义视图的绘制方法
原文链接 :http://android.eoe.cn/topic/ui 自定义视图最重要的部分是它的外观.你可以根据应用的需求简单或复杂的实现它. 这个教程包含了最常见的操作. 重写onDraw() ...
- NLP:NLP领域没有最强,只有更强的模型——GPT-3的简介、安装、使用方法之详细攻略
NLP:NLP领域没有最强,只有更强的模型--GPT-3的简介.安装.使用方法之详细攻略 导读:NLP领域的模型,没有最大,只有更大.博主这几天也仔仔细细看了这篇长达75页的论文,光署名作者都有二三十 ...
- ModelFileType:XML、Hdf5、dat等不同模型文件后缀文件的简介、使用方法之详细攻略
ModelFileType:XML.Hdf5.dat等不同模型文件后缀文件的简介.使用方法之详细攻略 目录 一.XML文件 XML简介 XML使用方法 二.HDF5文件 HDF5简介 HDF5常见文件
- vue 不能响应set结构增加数据_Vue.set()动态的新增与修改数据,触发视图更新的方法...
参数: target:要更改的数据源(可以是对象或者数组) key:要更改的具体数据(可以是字符串和数字) value :重新赋的值 用法:向响应式对象中添加一个属性,并确保这个新属性同样是响应式的, ...
- tensorflow打印模型结构_钢结构模型3D打印与有限元网格的融合方法
作者:魏鲁双 刘尚蔚 王 颖 魏 群 华北水利水电大学钢结构与工程研究院 中国科学院大学人工智能学院 摘 要 薄壁结构的3D打印STL文件是单侧外表面三角面网络,而钢结构模型体系的3D打印数据图形是由 ...
- ie8兼容性视图灰色修复_IE8兼容性视图怎么关闭 IE8兼容性视图设置关闭方法
IE8浏览器是使用用户最多的微软IE浏览器,是IE6与IE7的升级版本.由于IE8浏览器对网站的规范度要求提高了,导致打开某些网站可能会变形,所以IE8浏览器新增了兼容性视图这个功能,开启兼容性视图浏 ...
- Laravel中没有php artisan make:view怎么办?(可以基于Artisan View扩展包创建视图文件的方法解决!)
本文实例讲述了Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法.分享给大家供大家参考,具体如下: 1.简介 本扩展包添加了两个视图相关的Artisan命令到Laravel ...
- vue 加载页面时触发时间_5.6 vue更新数组时触发视图更新的方法,熟记JavaScript原生方法...
问题:vue更新数组时触发视图更新的方法 变异方法: Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新.什么是变异方法呢?简单理解就是改变了原来的数组,可能包括数组长度length,或者 ...
最新文章
- 暑期集训1:C++STL 练习题C:HDU-1263
- python中使用squarify包可视化treemap图:treemap将分层数据显示为一组嵌套矩形,每一组都用一个矩形表示,该矩形的面积与其值成正比、自定义设置每一个数据格的颜色
- Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)
- [基础]Javascript中的继承示例代码
- 从618大促看直播风口,电商玩家如何走得更远
- mysql生成随机时间
- timequest静态时序分析学习笔记之工具使用
- 华为模拟器ensp代码错误2,41,40问题的解决
- Vmware vSphere 5.0存储的连接
- Eclipse主题下载安装
- 18个小实例入门SQLServer XML查询
- 小米系统shell_小米平板1(Mi Pad1) 采用神盾内核的 lineageOS 14.1 / 15.1 / 16.0 刷机教程...
- 何为Servlet?
- 使用rotate()来做一个3d贺卡
- Windows系统下安装Linux双系统(硬盘安装)
- 计算机c盘program,电脑c盘program files(x86)文件夹可以删除吗
- 【信号与系统】系统线性时不变、因果稳定性的判定
- 如何将零碎信息结构化并做到有序安放,以实现知识积累?
- 大型研发团队敏捷实践落地 - 基于SAFe的大规模敏捷协作
- python 围棋按照坐标查找棋子_python 实现围棋游戏(纯tkinter gui)
热门文章
- 最常用的 MySQL 详细知识点总结,大家可以收藏啦
- Ubuntu安装配置Java
- 邬贺铨院士:工业互联网ICT的新挑战来(附PPT照片)
- 二氧化钛纳米片负载MIL100(Fe)|bmim][Tf2N]离子液体(IL)负载UiO-66-PEI(齐岳)
- KD2671系列智能数字绝缘电阻测试仪
- 李力游:展讯将于年内推出40纳米LTE芯片
- 梅科尔工作室-卢学斌-鸿蒙笔记3
- The Path to Learning WR Python FPE.15(TO NONAME)
- 外汇天眼:外汇占款是什么意思? 与外汇储备之间的差额是由哪些原因造成的?
- sql查询没有学生选的课程信息||查询选修了所有课程的学生信息