ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 大灰狼1976

[原创] 【玩到极致】手搓Excel3D (实例及说明,0基础可进)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-8-15 18:16 | 显示全部楼层
本帖最后由 jaxxcyh 于 2024-8-15 18:21 编辑
大灰狼1976 发表于 2024-8-15 17:34
你举个例子,excel图形是可以设置透明度的,插入png也可以,要做一个透明图片不太清楚,可以参考下其他帖 ...
试了一下,可以设置透明度。

TA的精华主题

TA的得分主题

发表于 2024-8-15 18:17 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
大佬,请收下我的膝盖,

TA的精华主题

TA的得分主题

发表于 2024-8-16 09:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-8-16 10:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
五体投地的!!!

TA的精华主题

TA的得分主题

发表于 2024-8-16 16:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-8-16 21:05 | 显示全部楼层
本帖最后由 EH458059147 于 2024-8-16 21:09 编辑

大佬,能帮我改进 一下吗,要求在表中,谢谢了 单位购物清单-20240815.rar (119.19 KB, 下载次数: 10)

TA的精华主题

TA的得分主题

发表于 2024-8-16 21:07 | 显示全部楼层
本帖最后由 EH458059147 于 2024-8-16 21:10 编辑

大佬,能帮我改一下代码吗,要求在表中,谢谢, 单位购物清单-20240815.rar (119.19 KB, 下载次数: 11)

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-19 13:46 | 显示全部楼层
【针对8楼最简示例的处理说明】
眼睛接收透视投影可以看作点光源投射投影,以方便理解。



1、假设场景:
   有一个点光源,空间坐标为450,170,0,有一个正方形P1-P4,坐标值如图所示。
   坐标值格式为(X,Y,Z),注意Z坐标值,设定Z轴方向为指向屏幕深处(远离观察者方向),Z坐标500就是离点光源前方500处。
   另外还有一个投影幕,用来接收投影,Z坐标为1000,XY坐标无限。



假设场景.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-19 13:55 | 显示全部楼层
2、先分析P1点,点光源的光线经过P1点并投影到幕的P1'点,由于点光源到投影幕的Z轴距离是点光源到P1点Z轴距离的两倍(1000/500),所以点光源与P1'的连线长度是点光源到P1长度的2倍,通过简单计算可得出P1'的XY坐标值(Z坐标值恒等于投影幕的Z坐标值1000,所以不需要算)                               
   注意,发散是基于点光源的,所以点光源坐标也要参与计算。                               
   P1'.X=(P1.X-light.X)*(1000/500)+light.X=        150
   P1'.Y=(P1.Y-light.Y)*(1000/500)+light.Y=        230

   同样方法算出另外3点的投影坐标                               
   P2'.X=(P2.X-light.X)*(1000/500)+light.X=        350
   P2'.Y=(P2.Y-light.Y)*(1000/500)+light.Y=        230
   P3'.X=(P3.X-light.X)*(1000/500)+light.X=        350
   P3'.Y=(P3.Y-light.Y)*(1000/500)+light.Y=        430
   P4'.X=(P4.X-light.X)*(1000/500)+light.X=        150
   P4'.Y=(P4.Y-light.Y)*(1000/500)+light.Y=        430

   连接4个投影点,就是正方形P1-P4的投影                               


P1-P4计算.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-19 14:06 | 显示全部楼层
3、再假设P1-P4前面(画面深处)还有4个点P5-P8,共8个点组成一个长方体,XY坐标与P1-P4相同,Z坐标为700。
   注:由于P5-P8的XY坐标与P1-P4重合,所以此画面上看不到,但可以计算。

   用上述方法,同样求出P5'-P8'的投影坐标:
   P5'.X=(P5.X-light.X)*(1000/700)+light.X=        235.7142857
   P5'.Y=(P5.Y-light.Y)*(1000/700)+light.Y=        212.8571429
   P6'.X=(P6.X-light.X)*(1000/700)+light.X=        378.5714286
   P6'.Y=(P6.Y-light.Y)*(1000/700)+light.Y=        212.8571429
   P7'.X=(P7.X-light.X)*(1000/700)+light.X=        378.5714286
   P7'.Y=(P7.Y-light.Y)*(1000/700)+light.Y=        355.7142857
   P8'.X=(P8.X-light.X)*(1000/700)+light.X=        235.7142857
   P8'.Y=(P8.Y-light.Y)*(1000/700)+light.Y=        355.7142857

   再连接4个投影点,就是正方形P5-P8的投影。


P5-P8计算.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-25 15:53 , Processed in 0.036322 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表