题目描述:
http://www.programming-challenges.com/pg.php?page=downloadproblem&probid=111302&format=html
另外做该题的时候参考了ybfq_wanglang的解题思路,地址如下:
http://hi.baidu.com/ybfq_wanglang/blog/item/9fff3b0d116176206159f33d.html
http://www.programming-challenges.com/pg.php?page=downloadproblem&probid=111302&format=html
另外做该题的时候参考了ybfq_wanglang的解题思路,地址如下:
http://hi.baidu.com/ybfq_wanglang/blog/item/9fff3b0d116176206159f33d.html
//该题关键在于判断线段是否与圆相交 //具体解释参见代码注释 //还有就是该题不用求切点坐标 //利用弧度完成圆弧段的长度计算 //用到反余弦函数 #include <cstdio> #include <cmath> #define eps 1e-8 struct point { double x, y; }; struct line { point a, b; }; //叉积 double xmult(point p1, point p2, point p0) { return (p1.x - p0.x) * (p2.y - p0.y) - (p2.x - p0.x) * (p1.y - p0.y); } //计算两点间距离 double distance(point p1, point p2) { return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y)); } //计算点到直线距离 double disptoline(point p, point l1, point l2) { return fabs(xmult(p, l1, l2)) / distance(l1, l2); } //判断线段(端点都在圆外)和圆相交,不包括端点和相切 int intersect_seg_circle(point c, double r, point l1, point l2) { point t = c; t.x += l1.y - l2.y; t.y += l2.x - l1.x; //点t点c构成l1 l2 的垂线,如果l1 l2 在直线t c异侧 , //且圆心到l1 l2 的距离小于 r,则l1 l2 与圆相交 return xmult(l1, c, t) * xmult(l2, c, t) < eps && disptoline(c, l1, l2) < r; } int main() { point p1, p2, origin; //origin为圆心 origin.x = origin.y = 0.0; double r; int ncase; scanf("%d", &ncase); while(ncase--) { scanf("%lf %lf %lf %lf %lf", &p1.x, &p1.y, &p2.x, &p2.y, &r); double d1 = distance(p1, p2); //点p1 p2间的距离 if(!intersect_seg_circle(origin, r, p1, p2)) //如果线段与圆不想交 printf("%.3lf\n", d1); else { double d2 = distance(origin, p1); double d3 = distance(origin, p2); double d = sqrt(d2 * d2 - r * r); d += sqrt(d3 * d3 - r * r); double t = acos((d2 * d2 + d3 * d3 - d1 * d1) / (2 * d2 * d3)); t -= acos(r / d2) + acos(r / d3); //现在t为圆上的绳子对应的圆心角的弧度 d += t * r; printf("%.3lf\n", d); } } return 0; }
发表评论
-
ACM 之 Java BigInteger
2011-06-01 20:26 0Java 的大整数类在ACM 中大有用武之地 ... -
判断点是否构成多边形, 顶点连续给出
2011-05-26 14:27 0#include <cstdio> #inc ... -
poj pku 1981 Circle and Points 点与圆 位置关系
2011-05-26 11:29 1295题目描述: http://poj.org/problem?id ... -
poj 1032 Parliament 数学
2011-05-25 17:34 1243题目描述: http://poj.org/problem?i ... -
poj 1385 Lifting the Stone 多边形重心
2011-05-25 11:13 1070题目描述: http://poj.org/problem?i ... -
poj 2676 Sudoku dfs 深搜
2011-05-16 21:05 902题目描述: http://poj.org/problem?i ... -
hdoj 2064 汉诺塔III 递推
2011-05-15 22:29 919题目描述: http://acm.hdu.edu.cn/sh ... -
hdoj 1207 汉诺塔II dp 动态规划
2011-05-15 21:22 1710题目描述: http://acm.hdu.edu.cn/sh ... -
poj 2506 Tiling 递推
2011-05-15 11:18 948题目描述: http://poj.org/problem?i ... -
poj 2420 A Star not a Tree? 多边形 费马点
2011-05-14 18:57 1832题目描述: http://poj.org/problem?i ... -
poj 2954 Triangle Pick 定理
2011-05-14 16:36 1181题目描述: http://poj.org/problem?i ... -
poj 1012 Joseph
2011-05-10 17:42 1272题目描述:poj.org/problem?id=10 ... -
zoj 1081 Points Within 点与多边形关系
2011-05-07 17:51 1175题目描述: http://acm.zju.edu.cn/on ... -
poj 1835 宇航员
2011-05-03 17:00 849题目描述:http://poj.org/problem?id ... -
poj 2398 Toy Storage
2011-04-23 20:19 748题目描述:http://www.poj.org/proble ... -
poj 1654 Area 多边形面积
2011-04-23 20:10 940题目描述:http://poj.org/proble ... -
poj 2318 TOYS 点 直线 位置关系
2011-04-23 10:06 707题目描述:http://poj.org/problem?id= ... -
poj pku 1673 EXOCENTER OF A TRIANGLE 三角形 垂心
2011-04-09 16:41 579题目描述:http://poj.org/problem?id= ... -
pc 111303 uva 10195 The Knights Of The Round Table
2011-04-04 16:06 779题目描述:http://www.programming-cha ... -
poj 1971 Parallelogram Counting 平行四边形个数
2011-04-03 10:05 1244题目描述:http://poj.org/problem?id= ...
相关推荐
Enough Rope to Shoot Yourself in the Foot Rules for C and C Programming
Physics and parameters can be tweaked in play mode for real time feedback, and the state can optionally be saved back to edit mode. This eliminates turnaround time and increases productivity. Check ...
unity用于制作绳索的插件Rope unity用于制作绳索的插件Rope unity用于制作绳索的插件Rope unity用于制作绳索的插件Rope
本文将详细介绍"3DMAX一键绳子插件Rope"的相关知识点。 1. **Rope插件介绍** Rope插件是一款专为3DMAX设计的工具,旨在快速生成逼真的绳索模型。它提供了一键化的操作方式,让设计师无需繁琐的步骤就能创建出具有...
Unity 绳索插件 Obi Rope
Obi Rope是一款专为Unity引擎设计的插件,旨在简化游戏开发过程中的绳索和布料模拟。无论您是开发2D还是3D游戏,Obi Rope都为您提供了强大的工具,让您能够轻松地在游戏中创建逼真的绳索效果,以及流动的布料模拟,...
Rope Toolkit 为您的项目带来稳定、快速的绳索物理特性。绳索组件可用于模拟简单的钢丝或更高级的设置,包括需要主动碰撞检测的滑轮和重物。捆绑的示例场景展示了如何连接绳子来模拟起重机、绳桥、秋千和拳击场。 ...
With Obi Rope you can create ropes in a matter of seconds, with complete control over their shape and behavior. The ropes can collide with the environment and with each other, and can be attached to ...
在IT领域,"Rope"通常指的是编程中的一个数据结构,特别是在文本编辑器或源代码管理软件中。Rope是一种高效处理大型文本的结构,它将大文本分割成多个小块,这些小块称为“片段”或“线段”,就像绳子是由许多细线...
在本场景中,我们关注的是Obi Rope,这是一个专门针对Unity的绳索模拟插件,版本6.0。Obi Rope允许开发者在他们的游戏中创建逼真的绳索物理效果,适用于各种应用,如解谜游戏、物理模拟或视觉特效。 Obi Rope 6.0的...
《Unity中的绳索模拟技术——以Obi Rope 6.1为例》 Unity3D作为一款广泛应用的游戏开发引擎,其强大的物理系统和图形渲染能力深受开发者喜爱。在游戏设计中,模拟真实世界的物理现象,如绳索的动态行为,能够极大地...
Rope是一个Python库,专注于源代码操作,提供了一套高级API来帮助开发者进行重构、代码分析和项目管理。Rope BETA 4.0是这个库的一个版本,它可能包含了一些新功能和改进,旨在提高开发者的生产力。 Rope的核心功能...
《Unity中的Obi Rope 5.3:模拟真实绳索物理效果的艺术》 Unity作为一款广泛应用的游戏开发引擎,因其强大的3D渲染、物理模拟和跨平台支持而深受开发者喜爱。在Unity中,模拟真实世界中的物体行为是提升游戏沉浸感...
Rope3D数据集可视化,与kitti可视化不同,需要denorm相机内参文件
《Unity中的Obi+Rope:打造弹性物理模拟的绳索特效》 在3D游戏开发和视觉效果设计中,真实感的物理模拟是提升沉浸式体验的关键元素之一。Obi+Rope作为一款专为Unity引擎设计的插件,正是为了实现这种目标而诞生的。...
With Obi Rope you can create ropes and rods in a matter of seconds, with complete control over their shape and behavior: Oriented particle technology allow rods to offer torsion/twisting effects....
Obi Rope 3.3.1 exported
《Unity中的Obi Rope 3.2:创造逼真的绳索物理效果》 Unity引擎以其强大的3D游戏开发能力和丰富的扩展性深受开发者喜爱。在众多的Unity插件中,Obi Rope 3.2无疑是一个专门针对绳索效果的杰出工具,它允许开发者...
《Unity超强绳索制作插件:Ultimate Rope Editor 1.18详解》 在游戏开发领域,物理模拟效果的逼真度对于提升玩家沉浸感至关重要。尤其在涉及到绳索、链条这类动态元素时,真实感的模拟更是不可或缺。本文将深入探讨...