找回密码
 点一下
查看: 1640|回复: 20

帮看看这个函数写的对不对

[复制链接]
发表于 2009-4-19 00:38:43 | 显示全部楼层 |阅读模式
function Mirror takes real angleN,real angleK returns real
    return 2*(angleK-angleN)
endfunction
angleN 是入射光的角度 范围 0~359.99
angleK 是镜面角度       范围 0~180
返回这样一个值x
使得 入射光角度加上这个值x 等于出射光角度
发表于 2009-4-19 07:52:42 | 显示全部楼层
弹射么?不知怎么获得镜面呢?
回复

使用道具 举报

发表于 2009-4-19 08:47:21 | 显示全部楼层
应该是180+2*angleK-angleN
回复

使用道具 举报

发表于 2009-4-19 08:56:08 | 显示全部楼层
疯人好久不见,最近在哪儿潜水?
回复

使用道具 举报

 楼主| 发表于 2009-4-19 12:37:31 | 显示全部楼层
引用第2楼疯人¢衰人于2009-04-19 08:47发表的  :
应该是180+2*angleK-angleN
1.JPG
回复

使用道具 举报

发表于 2009-4-19 13:38:28 | 显示全部楼层
return 2*angleK-angleN,这样吧
回复

使用道具 举报

 楼主| 发表于 2009-4-19 15:11:20 | 显示全部楼层
function Mirror takes real angleN,real angleK returns real
    if Sin(angleK-angleN) >= 0 then            //判断位置关系
    return 2*Acos(Cos(angleK-angleN))   
    else
    return -2*Acos(Cos(angleK-angleN))  
    endif
endfunction
修正了些BUG
回复

使用道具 举报

发表于 2009-4-19 17:41:45 | 显示全部楼层
hmmm………………
lz考虑一下一个极端情况,当入射角度等于镜面角度时,反射角度也应该是相同的,你这个式子显然不对
回复

使用道具 举报

 楼主| 发表于 2009-4-19 19:12:37 | 显示全部楼层
没错啊
angleK-angleN = 0
则Acos(Cos(angleK-angleN))  = 0
返回的值表示入射角将要变化的角度
回复

使用道具 举报

发表于 2009-4-19 19:49:36 | 显示全部楼层
hmmm………………
貌似是我看错老,我以为return值是指反射光角度………………
回复

使用道具 举报

发表于 2009-4-19 19:55:49 | 显示全部楼层
引用第5楼zhuzeitou于2009-04-19 13:38发表的  :
return 2*angleK-angleN,这样吧
这个不对呢
如果镜面0度
入射90
那么会是-90?
那不是直接穿过了?
应该+180吧
求的不是反射光啊
那就是2*(angleN-angleK)-180
这样不必考虑正负了
回复

使用道具 举报

发表于 2009-4-19 19:58:03 | 显示全部楼层
hmmm,-90相当于270度,也就方向阿,+180了才不对呢,那真的就穿过去了啊~~
疯人同学再去仔细的思考下吧~~
回复

使用道具 举报

 楼主| 发表于 2009-4-19 19:59:14 | 显示全部楼层
引用第10楼疯人¢衰人于2009-04-19 19:55发表的  :

这个不对呢
如果镜面0度
入射90
那么会是-90?
.......
看到一个跟我一样犯迷糊的。。。
如果入射 90 出射 -90 再加 180 那就是 90
也就是说入射90 出射 90 方向相同 这才叫直接穿过。。。
回复

使用道具 举报

发表于 2009-4-19 20:00:49 | 显示全部楼层
90入射进0度镜子反射不是90么?……
回复

使用道具 举报

 楼主| 发表于 2009-4-19 20:03:04 | 显示全部楼层
其实4楼已经有图解
回复

使用道具 举报

发表于 2009-4-19 20:03:44 | 显示全部楼层
2*(angleN-angleK)-180
按这个算入射和反射光的角度差应该是2*(90-0)-180=0
正好
回复

使用道具 举报

发表于 2009-4-19 20:04:50 | 显示全部楼层
引用第14楼c_kuhn于2009-04-19 20:03发表的  :
其实4楼已经有图解
俩图有差别么?
晕……
回复

使用道具 举报

发表于 2009-4-19 20:07:53 | 显示全部楼层
引用第13楼疯人¢衰人于2009-04-19 20:00发表的  :
90入射进0度镜子反射不是90么?……

这是笔笔直的直接穿透阿

aaa.png
引用第16楼疯人¢衰人于2009-04-19 20:04发表的  :

俩图有差别么?
晕……

两张图的入射光线方向不同
回复

使用道具 举报

发表于 2009-4-19 20:20:54 | 显示全部楼层
哦,当成射线的方向了,
做物理题时没考虑过光的运行方向
实际上我说的入射90是270度的光线运行方向,光垂直向下运行的
(入射光的光线运行方向与入射光路径这个射线的方向相反)
而且猪头的图,90度应该是向上的
回复

使用道具 举报

发表于 2009-4-19 20:26:26 | 显示全部楼层
恩恩,图修正老~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-7-21 20:21 , Processed in 0.033425 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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