[题目大意] 给你一个n*m的矩形,光线从(0,0)出发,沿右上方向以每秒根号2米的速度运动,碰到矩形边界就会反弹(符合物理规律的反弹),询问k个点,这些点都在矩形内部且不在矩形边界上,求光经过这些点的最小时间.如果光不会经过这个点,输出-1. [数据范围] 0<m,n,k<=100000 [吐槽] 最后1个小时都砸这道题上了,一直是搜索/模拟 的思路,然而正解是扩展欧几里得.(据说模拟也是可以的,然而我不会,sro_姬树流_orz) [题解] 把矩形对称展开,最后小球在横纵坐标均为maxx=…
LINK:Ray Tracing 虚这道题很久了 模拟赛考了一个加强版的 瞬间就想到了这道简化版的. 考虑做法 暴力模拟可能可以 官方正解好像就是这个. 不过遇到这种平面问题可以考虑把平面给无限的展开. 考虑展开之后点的坐标的通项 2kn +/- x 2km +/- y. 这个可以画图发现 那么就可以得到4个方程. 暴力解开 考虑遇到四个角就停止的问题 那么这个值必须要小于LCM(n,m). 显然 同时要保证合法的话需要>0. 容易发现方程只需要解一次 所以复杂度为 k+logn. (真是ex死…
http://codeforces.com/contest/724/problem/C 题目大意: 在一个n*m的盒子里,从(0,0)射出一条每秒位移为(1,1)的射线,遵从反射定律,给出k个点,求射线分别第一次经过这些点的时间. 解法一: (模拟) 射线不管怎么反射,都是和水平方向成45°角的,也就是说每一段射线上的点,横坐标和纵坐标的和或者差相等. 把每一个点放入它所对应的对角线里,然后模拟射线的路径就好. 代码: #include <iostream> #include <cstd…
吐槽:在比赛的时候,压根就没想到这题还可以对称: 题解:http://blog.csdn.net/danliwoo/article/details/52761839 比较详细: #include<iostream> #include<cstring> #include<cstdio> #include<cstdlib> #include<algorithm> #include<iomanip> #include<map>…
Chapter 2:Bounding Volume Hierarchies 今天我们来讲层次包围盒,乍一看比较难,篇幅也多,但是咱们一步一步来,相信大家应该都能听懂 BVH 和 Perlin textures是这本书中最难的两章,为什么把BVH放在第二章讲呢,据说,层次包围盒的渲染效率是比较高的,考虑到大家的渲染时间开销,所以先讲这个 光线 - 物体相交是光线跟踪器中的主要时间瓶颈,运行时间与物体数量成线性关系.但它是对同一模型的重复搜索,所以我们可以采用二分搜索的速度进行对数级复杂度搜索.因为…
OpenCascade Ray Tracing Rendering eryar@163.com 摘要Abstract:OpenCascade6.7.0中引入了光线跟踪算法的实现.使用光线跟踪算法可实现高质量的渲染效果,且可以使用GPU提升渲染效率. 关键字Key Words:OpenCascade, Ray Tracing 参考链接:Ray tracing as alternative rendering method for OCCT visualization component http:…
几个月前面试时Boss问过我一个问题--"除了scanline渲染方法,你还知道什么其他渲染方式?",我没答出来,至今记忆犹新. 前段时间摆弄Intel VTune时看了它的示例代码,是一个十分精巧的C语言写的ray tracer,醒悟过来这应该就是那个问题的答案.光线跟踪的渲染流程跟扫描线光栅化算法完全不同,很简洁自然,而且:(1)从简单的局部光照做到加入全局光照,最终甚至能达到照片级效果.(2)每条光线的计算都是独立的,所以利于实施多线程. 这真是一个相当有意思的课题,无疑对数学知…
Ray Tracing 题目链接:http://codeforces.com/problemset/problem/724/C 拓展欧几里得 //为什么这次C题这么难啊=.= 可以观察到,光线在矩形中运动的时间为LCM(n,m),所以可以把整个矩阵扩展成LCM(n,m)*LCM(n,m)的矩阵[光线从(0,0)点一直射到(LCM(n,m),LCM(n,m))点],然后将点关于矩形的四条边变换到直线y=x上,取最小的即可. 变换后得到的点的纵坐标为2*p*n±X,横坐标为2*q*m±Y,因为要求在…
<Ray Tracing in One Weekend> 优点: 相对简单易懂 渲染效果相当好 代码简短,只看书上的代码就可以写出完整的程序,而且Github上的代码是将基类与之类写在一起的,方便阅读 缺点: 看完书你依然不知道,渲染效果好是因为用了路径追踪 书中部分代码是有问题的 并没有使用标准库容器,没有一定c++基础看不了 点评 定位是光线追踪小学级别的入门书籍,可以让你大致了解光追的原理,一窥离线渲染的些许门道,而不至于遭受巨大打击. <Ray Tracing from the…
上一篇比较简单,很久才发是因为做了一些好玩的场景,后来发现这一章是专门写场景例子的,所以就安排到了这一篇 Preface 这一篇要介绍的内容有: 1. 自己做的光照例子 2. Cornell box画质问题及优化方案 3. 新的场景几何体——长方体 轴平行长方体 任意长方体 我们这一篇重实践轻理论阐述 ready 1. 需要上一章的知识 但是,上一章的Cornell box画质优化仅限于盒子本身,如果作为场景和其他物体放在一起就不能那么优化画质 即,Cornell box像素计算失败应该返回黑色…