上周在群里问了一下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

关于模型与视口相切与视图最大化的方法相关推荐

  1. 织梦 PHP 字段 调用,织梦dede网站内容模型普通文章调用自定义图片字段的方法(和调用...

    织梦DedeCMS网站内容模型普通文章调用自定义图片字段的方法: 我们首先需要创建一个自定义函数, 找到:/include/extend.func.php ,在 function GetOneImgU ...

  2. 【eoe教程】Android中自定义视图的绘制方法

    原文链接 :http://android.eoe.cn/topic/ui 自定义视图最重要的部分是它的外观.你可以根据应用的需求简单或复杂的实现它. 这个教程包含了最常见的操作. 重写onDraw() ...

  3. NLP:NLP领域没有最强,只有更强的模型——GPT-3的简介、安装、使用方法之详细攻略

    NLP:NLP领域没有最强,只有更强的模型--GPT-3的简介.安装.使用方法之详细攻略 导读:NLP领域的模型,没有最大,只有更大.博主这几天也仔仔细细看了这篇长达75页的论文,光署名作者都有二三十 ...

  4. ModelFileType:XML、Hdf5、dat等不同模型文件后缀文件的简介、使用方法之详细攻略

    ModelFileType:XML.Hdf5.dat等不同模型文件后缀文件的简介.使用方法之详细攻略 目录 一.XML文件 XML简介 XML使用方法 二.HDF5文件 HDF5简介 HDF5常见文件

  5. vue 不能响应set结构增加数据_Vue.set()动态的新增与修改数据,触发视图更新的方法...

    参数: target:要更改的数据源(可以是对象或者数组) key:要更改的具体数据(可以是字符串和数字) value :重新赋的值 用法:向响应式对象中添加一个属性,并确保这个新属性同样是响应式的, ...

  6. tensorflow打印模型结构_钢结构模型3D打印与有限元网格的融合方法

    作者:魏鲁双 刘尚蔚 王 颖 魏 群 华北水利水电大学钢结构与工程研究院 中国科学院大学人工智能学院 摘 要 薄壁结构的3D打印STL文件是单侧外表面三角面网络,而钢结构模型体系的3D打印数据图形是由 ...

  7. ie8兼容性视图灰色修复_IE8兼容性视图怎么关闭 IE8兼容性视图设置关闭方法

    IE8浏览器是使用用户最多的微软IE浏览器,是IE6与IE7的升级版本.由于IE8浏览器对网站的规范度要求提高了,导致打开某些网站可能会变形,所以IE8浏览器新增了兼容性视图这个功能,开启兼容性视图浏 ...

  8. Laravel中没有php artisan make:view怎么办?(可以基于Artisan View扩展包创建视图文件的方法解决!)

    本文实例讲述了Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法.分享给大家供大家参考,具体如下: 1.简介 本扩展包添加了两个视图相关的Artisan命令到Laravel ...

  9. vue 加载页面时触发时间_5.6 vue更新数组时触发视图更新的方法,熟记JavaScript原生方法...

    问题:vue更新数组时触发视图更新的方法 变异方法: Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新.什么是变异方法呢?简单理解就是改变了原来的数组,可能包括数组长度length,或者 ...

最新文章

  1. 暑期集训1:C++STL 练习题C:HDU-1263
  2. python中使用squarify包可视化treemap图:treemap将分层数据显示为一组嵌套矩形,每一组都用一个矩形表示,该矩形的面积与其值成正比、自定义设置每一个数据格的颜色
  3. Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)
  4. [基础]Javascript中的继承示例代码
  5. 从618大促看直播风口,电商玩家如何走得更远
  6. mysql生成随机时间
  7. timequest静态时序分析学习笔记之工具使用
  8. 华为模拟器ensp代码错误2,41,40问题的解决
  9. Vmware vSphere 5.0存储的连接
  10. Eclipse主题下载安装
  11. 18个小实例入门SQLServer XML查询
  12. 小米系统shell_小米平板1(Mi Pad1) 采用神盾内核的 lineageOS 14.1 / 15.1 / 16.0 刷机教程...
  13. 何为Servlet?
  14. 使用rotate()来做一个3d贺卡
  15. Windows系统下安装Linux双系统(硬盘安装)
  16. 计算机c盘program,电脑c盘program files(x86)文件夹可以删除吗
  17. 【信号与系统】系统线性时不变、因果稳定性的判定
  18. 如何将零碎信息结构化并做到有序安放,以实现知识积累?
  19. 大型研发团队敏捷实践落地 - 基于SAFe的大规模敏捷协作
  20. python 围棋按照坐标查找棋子_python 实现围棋游戏(纯tkinter gui)

热门文章

  1. 最常用的 MySQL 详细知识点总结,大家可以收藏啦
  2. Ubuntu安装配置Java
  3. 邬贺铨院士:工业互联网ICT的新挑战来(附PPT照片)
  4. 二氧化钛纳米片负载MIL100(Fe)|bmim][Tf2N]离子液体(IL)负载UiO-66-PEI(齐岳)
  5. KD2671系列智能数字绝缘电阻测试仪
  6. 李力游:展讯将于年内推出40纳米LTE芯片
  7. 梅科尔工作室-卢学斌-鸿蒙笔记3
  8. The Path to Learning WR Python FPE.15(TO NONAME)
  9. 外汇天眼:外汇占款是什么意思? 与外汇储备之间的差额是由哪些原因造成的?
  10. sql查询没有学生选的课程信息||查询选修了所有课程的学生信息