用户:
源码工厂蓝仔查看:85 回复:7 评论:32 创建时间:2023-05-20T21:03:04
就是,先用画笔画出镜面
再让画笔角色到一个点上慢慢前进,然后碰到画出来的镜面就反射
这样的反射引擎
我做游戏要用!
谢谢在座的各位!
边城过客说得好,顶一下吧
点赞0
评论
顶上去让大佬们看看我都在想什么
其实我觉得纯画笔的游戏很有趣,但是我高估了自己的知识水平……
光学引擎好像纯画笔还比较方便
其实我觉得最好让simplay(小M)看到
我就看了花开有几何想做一个《镜花水月》
就是镜子,荷花,池塘和光线的游戏
(曲解)
出bug了……
热知识:粒子(光子,构成光的基本粒子)在能量不足时(遇到一些屏障时)仍有几率穿过屏障
点赞0
评论
我来了^_^我的想法是,每面镜子可以视为一条有两个端点的线段,用四个列表分别保存每条线段两个端点的横纵坐标。
先判断光线是否射到镜子上,这需要判断两条已知端点的线段是否交叉。给你个提示:①A点坐标(x1,y1),B点坐标(x2,y2),定义向量AB=(x2-x1,y2-y1);②对于向量a=(x1,y1),b=(x2,y2),定义新运算a×b=x1y2-x2y1;③对于线段AB和线段CD,若向量AB×AC与AB×AD一正一负,且向量AB×AC与AB×AD也是一正一负,那么AB和CD就相交了。
接下来,你需要求出光线射到镜子上的位置。先设交点位置(x,y),再根据这个交点分别在两条线段上这个信息,列出两个关于坐标的方程(每个方程都基于三点共线),解这个方程就能求出x和y的值。
刚刚打错了,应该是向量AB×AC与AB×AD一正一负,且向量CD×CA与CD×CB也是一正一负
最后,判断光线会向哪个方向反射。这里需要计算光线与镜面的夹角,然后根据夹角计算反射的方向。
实现光的反射效果,整体思路很容易就能想到,但是过程实现的方式就非常复杂,需要一定的数学功底。我觉得你可以上网搜一下与向量有关的数学知识,磨刀不误砍柴工嘛。花开有几何里的三角函数、双曲线等知识,我当初也是上网搜,现学现用的。
谢谢,我会去实践的,这个本来就要用很多超纲的知识
不过这个我觉得这个项目应该不会吃灰掉
太晚了,先睡了
是的,我也这么想
没看懂……我想做的是输入光线的两点和镜子的两点判断反射
我说一下现在想的大概的算法:光如果中途撞到镜子就不动了,再生成一条新的光线(不用克隆体画光线了)
我想开个协作
这句话的×是新运算还是乘?
我知道,只要一个点同时符合两个直线方程就是两线交点(两条线段相交只是两直线相交的一种特殊情况所以这个办法能用)
就是定义的向量新运算。我列的这个式子意思是,只要每条线段的两端点都在另一条线段的异侧,那么这两条线段就相交了。
还有两种可能:第一种是两线段上各自有某一点是同一个点,第二种是两线段属于同一条直线且各有一部分是重合的
这样也算,但是好像光反射用不到
帮我看一下怎么回事,谢谢
点赞0
评论
这个光反射模拟引擎是这样的:点两下生成一面镜子,按1模式换成生成反射镜,按2模式换成生成折射镜
但是出了点问题,我也搞不明白,帮忙看一下,谢谢
https://kitten4.codemao.cn/?invite_code=WPS5QT喵:WPS5QT我在编程猫发起了一个协作项目,点击链接即可加入一起创作!