13.3
来源:互联网 发布:巫师3a卡优化 编辑:程序博客网 时间:2024/06/04 18:44
#include <iostream>#include <Cmath>using namespace std;class Circle;class Point{ public: Point(double xx=0,double yy=0):x(xx),y(yy){} friend ostream &operator<<(ostream &,const Point &); friend void crossover_point(Point &p, Circle &c, Point &p1,Point &p2); protected: double x,y;};ostream &operator<<(ostream &output,const Point & c){ output<<"("<<c.x<<","<<c.y<<")"<<endl; return output;}class Circle:public Point{ public: Circle(double xx=0,double yy=0,double r=0):Point(xx,yy),R(r){} friend ostream & operator<<(ostream &,const Circle &); friend void crossover_point(Point &p, Circle &c, Point &p1,Point &p2); protected: double R; };ostream &operator<<(ostream &output,const Circle &c){ output<<"圆心为:("<<c.x<<","<<c.y<<")"<<"半径为:"<<c.R<<endl; return output;}void crossover_point(Point &p, Circle &c, Point &p1,Point &p2 ){ p1.x = (c.x + sqrt(c.R*c.R/(1+((c.y-p.y)/(c.x-p.x))*((c.y-p.y)/(c.x-p.x))))); p2.x = (c.x - sqrt(c.R*c.R/(1+((c.y-p.y)/(c.x-p.x))*((c.y-p.y)/(c.x-p.x))))); p1.y = (p.y + (p1.x -p.x)*(c.y-p.y)/(c.x-p.x)); p2.y = (p.y + (p2.x -p.x)*(c.y-p.y)/(c.x-p.x));}int main(){ Circle c(3,2,4); Point p1(1,1),p2,p3; crossover_point(p1,c, p2, p3); cout<<"点p1"<<p1; cout<<"与圆c"<<c<<"的圆心相交于圆c的两点分别是:"<<p2<<","<<p3<<endl; return 0;}
求得的交点如何返回,不是太懂!
0 0
- 13.3
- 13.3
- 13.3
- 13.3
- 实验13.3
- 13.3 DELETE
- 13.3. Swap
- 13.3 Standard conversions
- 百度笔试题13.3
- 13.3.29 coding diary
- 13.3 集成测试
- 13.3 无意识的递归
- 13.3 Palindrome Partitioning II
- 13.3.3 获取指标
- 13.3 DOS头
- CLRS 13.3插入
- 13.3 日期类
- 13.3节练习
- 安装4.5免重启的方法
- Backup and Recovery Basics2
- Linux Top 命令解析
- 十四周——动物这样叫
- Springmvc +JNDI 在Tomcat下 配置数据源
- 13.3
- POJ 3449 Geometric Shapes (多边形相交)
- 视觉直观感受 7 种常用的排序算法
- VC中打开mclmcrrt.lib链接文件
- Java / Android 基于Http的多线程下载的实现
- Oracle中的Union与Union All区别
- [linux驱动]linux块设备学习笔记(三)——程序设计
- 寂寞说谎
- boost::program_options 命令行选项 子命令