第十三周--圆外一点与圆心相连的直线与圆的交点
来源:互联网 发布:虚拟主机源码 编辑:程序博客网 时间:2024/04/29 19:52
/**程序的版权和版本声明部分:*Copyright(c)2013,烟台大学计算机学院学生*All rights reserved.*文件名称:*作者:尚振伟*完成日期:2014年5月19日*版本号:v0.1*对任务及求解方法的描述部分:*输入描述:无*问题描述:1)先建立一个Point(点)类,包含数据成员x,y(坐标点);(2)以Point为基类,派生出一个Circle(圆)类,增加数据成员(半径),基类的成员表示圆心;(3)编写上述两类中的构造、析构函数及必要运算符重载函数(本项目主要是输入输出);(4)定义友元函数计算圆外一点雨圆心的连线与圆的交点。*程序输入:*程序输出:*问题分析:*算法设计:*我的程序:*/#include <iostream>#include <Cmath>using namespace std;class Circle;class Point{protected: double x; double y;public: Point():x(0),y(0) {} Point(double xx,double yy):x(xx),y(yy) {} double get_x() { return x; } double get_y() { return y; } friend ostream & operator<<(ostream &,const Point &); friend void crossover_point(Point &p,Circle &c, Point &p1,Point &p2 );};ostream & operator<<(ostream &output,const Point &p){ output<<"("<<p.x<<","<<p.y<<")"<<endl; return output;}class Circle:public Point{private: double r;public: Circle(double a,double b,double c):Point(a,b),r(c) {} double getr() { return r; } friend ostream &operator<<(ostream &output,const Circle &c); friend void crossover_point(Point &p,Circle &c, Point &p1,Point &p2 ) ;};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 c1(5,2,8); //c2应该大于c1 Point p1(3,7),p2,p3; //分别位于c1内、上、外 cout<<"圆c1: "<<c1; cout<<"点p1: "<<p1; crossover_point(p1,c1, p2, p3); cout<<"的圆心相连,与圆交于两点,分别是:"<<endl; cout<<"交点1: "<<p2; cout<<"交点2: "<<p3; return 0;}
结果展示:
心得体会:有点小麻烦。。。。
0 0
- 第十三周--圆外一点与圆心相连的直线与圆的交点
- 13.3输出给定一点p与圆心相连成的直线与圆的两个交点
- 第十三周项目3-与圆心相连的直线
- 第十三周项目三与圆心相连的直线
- 第十三周项目3--与圆心相连的直线
- 与圆心相连的直线
- 与圆心相连的直线
- 第十三周(项目三)——与圆心相连的直线。
- 第十三周项目3--与圆心相连的直线 方案2
- 求过圆心直线与圆的两个交点
- 求过圆心直线与圆的两个交点
- 第11周项目4-3求过圆外一点与圆心的连线与圆的两个交点
- 13【项目3 - 与圆心相连的直线】
- 求过圆心直线与圆的两个交点(JAVA & OC)
- 直线与圆的交点
- C++第13周(春)项目3 - 与圆心相连的直线
- 第13周(春)项目3 - 与圆心相连的直线
- 已知圆外一点,圆心和半径,求过圆外点的直线与圆的切点算法
- php 调试程序
- python 中的拷贝、浅拷贝与深拷贝
- java常见修饰符总结
- 解决STRUTS2 错误 There is no Action mapped for namespace / and action name
- 三层架构
- 第十三周--圆外一点与圆心相连的直线与圆的交点
- 使用NPOI导入导出标准Excel
- 程序健壮性
- C++学习之Pair
- OCP 1Z0 051 122
- 高跟鞋
- 第13周总结
- 鹰眼摄像头(OV7725)的使用
- (二)利用导入表、导出表和重定位表定位导入函数的地址