HDU4667(有错)
正规的做法是找切点。三角形三个顶点分别对圆作切线,然后求切点(2个)。两圆之间也要求切点(4个)。
扯淡了这就。。麻烦的要命。。
下面是写了一半的代码。。
void process_circle(point p, point o, double r, point &intersect1, point &intersect2)
{ point vec; vec = o - p; double angle = asin(r*1.0 / sqrt(dist(p, o))); double scale = sqrt(1 - r*r / dist(p, o)); intersect1 = Rotate(vec, -angle, scale) + p; intersect2 = Rotate(vec, angle, scale) + p; return; } void process_two_circles(point o1, point o2, double r1, double r2, point &intersect1, point &intersect2, point &intersect3, point &intersect4) |
当然了,可以水过它,把圆离散化成点,构成1000边形,然后注意,周长不要直接两点的距离,最好还是采用它们之间围成的那段弧的长度来计算。不难得到如下代码,但是我实在找不到错误在哪里了。。
e-
?(x):-(x))<eps) + ], convex[number_of_devision * + ]; ? : -) : (ret > ? : -); ; ; i < n; i++) |
最新文章
- 如何把Excel中的某列数值如何转换成文本格式,且兼容性最好?
- u3d avatar部件的理解
- Java多线程问题总结
- .net学习笔记---webconfig的读与写
- gradle大体内容
- Java系列:JVM指令详解(下)(zz)
- 【OpenStack】OpenStack系列1之Python虚拟环境搭建
- nodeschool.io 8
- JAVA 修改 JSESSIONID
- C语言undefined behaviour未定义行为
- Chrome for Android在Chromium代码库中的提交patch
- wchar_t 、UTF-8、UTF-16的转换方法 - luketty的专栏 - 博客频道 - CSDN.NET
- git容易被忽略的准备工作命令
- [html5] 学习笔记-表单新增的元素与属性(续)
- 【读书笔记】-- JavaScript模块
- PHP-day01
- Java的三种代理模式简述
- python 大数据处理小结
- django在centos部署
- 批量插入数据, 将DataTable里的数据批量写入数据库的方法
热门文章
- (ubuntu) pip install scandir 时出现错误 fatal error: Python.h: No such file or directory
- 数据库索引(Index)【未完待续】
- IO扩展控件(System.IO.Abstractions)
- zabbix通过jvm监控tomcat
- java File类 打印目录树状结构(递归)
- Mac OS X 更新JAMF域控配置
- python脚本实现ipv6的ddns功能
- Codeforces Round #113 (Div. 2) Tetrahedron(滚动DP)
- Cobol online program 传指针
- 【BZOJ 1036】【ZJOI 2008】树的统计Count