geometry
AcToy
有志者 事竟成
展开
-
UVa 11178 - Morley's Theorem
例题,全是模板,知道了怎么计算,就可以做出来,只是Rotate()函数要注意的是,弧度rad为正时逆时针旋转,为负时顺时针旋转 /************************************************************************* > File Name: UVa11178.cpp > Author: AcToy > Mail: ycsgldy原创 2013-07-18 16:56:39 · 547 阅读 · 0 评论 -
UVa 11437 - Triangle Fun
入门题,给了A,B,C三点的坐标,通过参数方程可以求得,在BC上点的坐标 p = B + ( C - B ) t , 因为D是三等分点,所以t = 1 / 3. 可以求得D = 2 / 3 * B + 1 / 3 * C,同理可以求得E,F。 这样就可以求得点P, Q, R三点的坐标。例如求P点坐标方法如下 Point GetLineIntersection(Point p, Vector v原创 2013-07-18 19:42:18 · 524 阅读 · 0 评论 -
UVa 11800 - Determine the Shape
计算几何入门题,直接模拟即可,这个题关键是判断四个点的位置,我的方法如下: if(SegmentProperIntersection(z[1],z[2], z[3], z[4])) A = z[1], D = z[2], C = z[3], B = z[4], flag = 1; else if(SegmentProperIntersection(z[1], z[3], z[2], z[原创 2013-07-19 12:02:58 · 695 阅读 · 0 评论 -
UVa 11817 - Tunnelling the Earth
将平面上的亮点坐标转化成空间坐标,为球面上的两点。求所对应的弧长与弦长的差值,转化为空间坐标的函数为 double torad(double deg) { return deg / 180 * M_PI; } void get_coord(double lat, double lng, double& x, double& y, double& z) { lat = torad(lat)原创 2013-07-19 20:08:34 · 629 阅读 · 0 评论 -
UVa 11646 - Athletics Track
在圆中有个矩形,知道长:宽 = a : b。设一值x,这样我们可以求出圆半径R,2*R*x = sqrt(a*x*a*x +b*x*b*x),x可化简没,sin(ang1)= b / 2R,矩形对角划分的一个角,画出图来就会知道是那个角了,这个我可以求出圆弧所对应的圆心角为 ang = 2 * ang1 。所以200 = a * x + R * x *ang,可以求出x,这样长为a * x, 宽为原创 2013-07-19 18:39:27 · 811 阅读 · 0 评论 -
UVa 11524 - In-Circle
不需要算法,几何计算题。方法如同Ac_coral http://www.cnblogs.com/Accoral/p/3142038.html /************************************************************************* > File Name: UVa11524.cpp > Author: AcToy > Mail:原创 2013-07-20 09:56:11 · 702 阅读 · 0 评论