精华内容
下载资源
问答
  • 判断点圆关系
    千次阅读
    2020-12-21 14:55:22

    Question:

    c++实现判断点与圆的位置关系

    (1)点在圆上

    (2)点在圆内

    (3)点在圆外

     

    c++代码实现:

    #include <iostream>
    
    using namespace std;
    
    
    //判断点和圆的位置关系
    //点类
    class Point {
    
    public:
    
        //getset方法
    
        void setX(int x){
    
            m_X=x;
        }
    
        int getX(){
            return m_X;
        }
    
        void setY(int y){
            m_Y=y;
        }
    
        int getY(){
            return m_Y;
        }
    private:
        int m_X;
        int m_Y;
    
    };
    //圆类型
    
    class Circle{
    
    public:
        void setR(int r){
            m_R=r;
        }
    
        int getR(){
            return m_R;
        }
        //设置圆心   获取圆心
        void SetCenter(Point center){
            m_Center=center;
    
        }
    
        Point getCenter(){
            return m_Center;
        }
    private:
        int m_R;//半径
       // int m_X;
        //int m_Y;
    
        //上面x和y的坐标可以看成整体
    
        Point m_Center;
    
    };
    
    //判断点和圆的关系的函数
    void idInCircle(Circle &c,Point &p){
    
        //计算两点之间距离  平方
        int Longs=
        (c.getCenter().getX()-p.getX())*(c.getCenter().getX()-p.getX())+
        (c.getCenter().getY()-p.getY())*(c.getCenter().getY()-p.getY());
    
        //计算半径的平方
        int rLongs=c.getR()*c.getR();
    
        //判断
        if(Longs==rLongs){
            cout<<"点在圆上"<<endl;
        }
        else if(Longs>rLongs){
            cout<<"点在圆外"<<endl;
        }
        else{
            cout<<"点在圆内"<<endl;
        }
    }
    
    
    int main()
    {
    
        //创建圆的对象
        Circle c1;
        c1.setR(10);
        Point center;
        center.setX(10);
        center.setY(0);
        c1.SetCenter(center);
    
    
        //创建点的对象
        Point p;
        p.setX(10);
        p.setY(10);
    
        idInCircle(c1,p);
        return 0;
    }
    

     

    更多相关内容
  • 判断点的位置关系

    千次阅读 2020-07-02 20:37:47
    判断点的位置关系 第一步,创建一个类,代表二维空间的一个。二维空间确定一个可参考平面直角坐标系中,确定了x坐标和y坐标,即可确定的位置 package com.tyl.homework; import java.util.Scanner; /** ...

    判断点与圆的位置关系

    第一步,创建一个类,代表二维空间的一个点。二维空间确定一个点可参考平面直角坐标系中,确定了x坐标和y坐标,即可确定点的位置

    package com.tyl.homework;
    
    import java.util.Scanner;
    /**
     * 点类
     */
    public class Point {
    
        //x轴坐标值
        double x;
    
        //y轴坐标值
        double y;
        
        //Point类的无参构造器
        public Point(){
            
        }
    
        //Point类的有参构造器
        public Point(double x,double y){
            this.x = x;
            this.y = y;
        }
    
        //创建一个点的方法
        public  static  Point createPoint(){
            Scanner tools = new Scanner(System.in);
            System.out.println("请依次输入你想要创建的点的x坐标和y坐标:");
            Point p = new Point(tools.nextDouble(),tools.nextDouble());
            return p;
        }
    }
    
    

    确定圆只需要知道圆的圆心位置和半径长度,圆心可直接定义为上面的Point类引用类型,半径即基本类型中的double类型。代码中的Circle类重写了其中的area(求面积)方法和perimeter(求周长),因为Circle类继承了抽象类Figure,这一步非必需,可选择不继承和重写。

    /**
     *圆类
     */
    import java.util.Scanner;
    
    import static java.lang.StrictMath.PI;
    
    public class Circle extends Figure{
        
        //圆心:p,自定义的Point类型
        Point p;
        
        //半径:r
        double r;
        
        //Circle类的无参构造器
        public Circle(){
        }
        
        //Circle类的有参构造器
        public Circle(double r){
            this.r = r;
        }
        
        //计算面积的方法:S=圆周率*半径的平方
        @Override
        public double area(){
            //S=圆周率*半径的平方
            return PI*r*r;
        }
        //计算圆的周长 c=2*半径*圆周率
        @Override
        public double perimeter() {
            return 2*r*PI;
        }
        //创建一个圆
        public static Circle createCircle() {
            Scanner tools = new Scanner(System.in);
            System.out.println("请输入圆的半径值:");
            Circle c = new Circle(tools.nextDouble());
            //设置圆的圆心坐标
            System.out.println("请输入圆心的x坐标和y坐标:");
            Point p1 = new Point(tools.nextDouble(),tools.nextDouble());
            //把点p1赋值给圆c1的圆心p
            c.p = p1;
            return c;
        }
        //判断点与圆的位置关系
        public void position(Point p1){
            //点到圆心的距离公式(此处distance未开方,因此if中与r平方比较)
            double distance =(p1.x-p.x)*(p1.x-p.x)-(p1.y-p.y)*(p1.y-p.y);
            /*
            点到圆心的距离等于半径,点在圆上
            点到圆心的距离小于半径,点在圆内
            点到圆心的距离大于半径,点在圆外
             */
            if (distance==r*r){
                System.out.println("点在圆上");
            }else if (distance<r*r){
                System.out.println("点在圆内");
            }else if (distance>r*r){
                System.out.println("点在圆外");
            }
        }
    }
    

    测试代码

    package com.tyl.homework;
    
    /**
     * 计算圆的面积,并判断点与圆的位置关系
     */
    public class Demo {
        public static void main(String[] args) {
    
            Circle c1 = Circle.createCircle();
            //调用周长方法求圆的周长
            System.out.println("所求圆的周长为:"+c1.perimeter());
    
            //调用面积方法计算圆的面积
            System.out.println( "所求圆的面积为:"+c1.area());
    
            //调用createPoint方法创建一个点P2
            Point p2 = Point.createPoint();
    
            //调用position方法判断点与圆的位置关系
            c1.position(p2);
    
        }
    }
    

    运行结果:

    D:\software\jdk-14.0.1\bin\java.exe "-javaagent:D:\software\JetBrains\IntelliJ IDEA 2020.1\lib\idea_rt.jar=51767:D:\software\JetBrains\IntelliJ IDEA 2020.1\bin" -Dfile.encoding=UTF-8 -classpath D:\Code0625\out\production\Code0625 com.tyl.homework.Demo
    请输入圆的半径值:
    3
    请输入圆心的x坐标和y坐标:
    2
    3
    所求圆的周长为:18.84955592153876
    所求圆的面积为:28.274333882308138
    请依次输入你想要创建的点的x坐标和y坐标:
    4
    5
    点在圆内
    
    Process finished with exit code 0
    
    展开全文
  • 创建类,圆类。...//圆关系案例 //类 class Point { public: //设置X坐标 void setX(int x) { m_X = x; } //获取X坐标 int getX() { return m_X; } //设置Y坐标 void setY(int y)

    创建点类,圆类。
    将其属性都设置为私有,并提供固定公共接口可以对其值进行修改。
    原理就是坐标系中两点距离的判断。

    #include <iostream>
    using namespace std;
    
    //点和圆关系案例
    
    //点类
    class Point
    {
    public:
    	//设置X坐标
    	void setX(int x)
    	{
    		m_X = x;
    	}
    	//获取X坐标
    	int getX()
    	{
    		return m_X;
    	}
    	//设置Y坐标
    	void setY(int y)
    	{
    		m_Y = y;
    	}
    	//获取Y坐标
    	int getY()
    	{
    		return m_Y;
    	}
    private:
    	int m_X;
    	int m_Y;
    };
    
    
    //圆类
    class Circle
    {
    public:
    	//设置半径
    	void setR(int r)
    	{
    		m_R = r;
    	}
    	//获取半径
    	int getR()
    	{
    		return m_R;
    	}
    	//设置圆心
    	void setCenter(Point center)
    	{
    		m_Center = center;
    	}
    	//获取圆心
    	Point getCenter()
    	{
    		return m_Center;
    	}
    	
    private:
    	int m_R;//半径
    	Point m_Center;//圆心
    
    };
    
    //判断点和圆的关系
    void isInCircle(Circle &c, Point &p)
    {
    	//计算两点距离的平方
    	int distance = 
    	(c.getCenter().getX() - p.getX())*(c.getCenter().getX() - p.getX()) + 
    	(c.getCenter().getY() - p.getY())*(c.getCenter().getY() - p.getY());
    	//计算半径的平方
    	int distanceR = c.getR() * c.getR();
    	//比较两者的平方,从而判断出其关系
    	if(distance==distanceR)
    	{
    		cout << "点在圆上 " << endl;
    	}
    	else if (distance > distanceR)
    	{
    		cout << "点在圆外 " << endl;
    	}
    	else { cout << "点在圆内 " << endl; }
    
    }
    
    int main()
    {
    	//创建圆
    	Circle c;
    
    	int cR;
    	cout << "请输入圆的半径 " << endl;
    	cin >> cR;
    	c.setR(cR);
    	Point center;
    	center.setX(cR);//在此坐标系中圆心的横坐标就是半径的值
    	center.setY(0);
    	c.setCenter(center);
    
    	//创建点
    	Point p;
    
    	int px;
    	cout << "请输入点的横坐标 " << endl;
    	cin >> px;
    	int py;
    	cout << "请输入点的纵坐标" << endl;
    	cin >> py;
    
    	p.setX(px);
    	p.setY(py);
    
    	//判断关系
    	isInCircle(c, p);
    
    	system("pause");
    	return 0;
    }
    
    展开全文
  • 描述:判断点与图形的位置关系 题目描述: 以(point)类为基类,重新定义矩形类和类。为直角坐标,矩形水平放置,由左下方的顶点和长宽定义。由圆心和半径定义。派生类操作判断任一坐标是在图形内,...
  • C++类实例:判断点的位置关系

    千次阅读 2020-09-20 22:28:53
    给定一个和一个,总体有三个位置关系: 1.内; 2.外; 3.上 设计一个C++程序,输入一个的坐标和半径,以及一个的位置坐标,实现相对位置的判断。如下图所示: using namespace std; ...
    C++学习记录
    给定一个点和一个圆,总体有三个位置关系:
    	1.点在圆内;
    	2.点在圆外;
    	3.点在圆上
    设计一个C++程序,输入一个圆的坐标和半径,以及一个点的位置坐标,实现相对位置的判断。如下图所示:
    

    在这里插入图片描述

    using namespace std;
    #include<iostream>
    #include<cmath>
    
    class dot
    {
    private:
    	int x, y;//横纵坐标
    public:
    	void setx(int a)
    	{
    		x = a;
    	}
    	void sety(int a)
    	{
    		y = a;
    	}
    	int getx()
    	{
    		return x;
    	}
    	int gety()
    	{
    		return y;
    	}
    };
    
    class circle
    {
    private:
    	int x, y, r;
    public:
    	void setx(int a)
    	{
    		x = a;
    	}
    	void sety(int a)
    	{
    		y = a;
    	}
    	void setr(int a)
    	{
    		r = a;
    	}
    	int  getx()
    	{
    		return x;
    	}
    	int gety()
    	{
    		return y;
    	}
    	int getr()
    	{
    		return r;
    	}
    	void culculateS(dot &d)
    	{
    		int s;
    		s = (d.getx() - x) * (d.getx() - x) + (d.gety() - y) * (d.gety() - y) - r * r;
    		if (s < 0)
    		{
    			cout << "该点在圆内" << endl;
    		}
    		else if (s == 0)
    		{
    			cout << "该点在圆上" << endl;
    		}
    		else
    			cout << "该点在圆外" << endl;
    	}
    
    };
    
    
    
    
    
    
    int main()
    {
    	int cx, cy, r, dx, dy;
    	circle c1;
    	cout << "请输入圆心横坐标:" << endl;
    	cin >> cx;
    	c1.setx(cx);
    	cout << "请输入圆心纵坐标:" << endl;
    	cin >> cy;
    	c1.sety(cy);
    	cout << "请输入半径:" << endl;
    	cin >> r;
    	c1.setr(r);
    	dot d1;
    	cout << "请输入点的横坐标:" << endl;
    	cin >> dx;
    	d1.setx(dx);
    	cout << "请输入点的纵坐标:" << endl;
    	cin >>dy;
    	d1.sety(dy);
    	c1.culculateS(d1);
    	return 0;
    }
    
    展开全文
  • //定义一个Point类,其属性包括的坐标,提供计算 ...//判断两个是否相交并输出结果 #include&lt;iostream&gt; using namespace std; class Point { public: void setPointt(int _x1,...
  • import java.util.ArrayList;.../*** java判断某个是否在所画范围内(多边形【isPtInPoly】/圆形【distencePC】)* @param point 检测* @param pts 多边形的顶点* @return 在多边形内返回true,否则返回fals...
  • python练习_定义定义点判断关系

    千次阅读 2021-03-04 11:12:05
    python练习_定义定义点判断关系 定义一个类,包括坐标x,坐标y, 定义一个类,包括圆点cp和半径r, 方法:1.求的面积;2.求的周长;3.判断一个实例和实例关系。 import math class Pointer(object):...
  • java面向对象-判断点关系

    千次阅读 2018-03-09 16:38:19
    20180308 java java面向对象-判断点关系判断点关系(在外、在圆周上、在内)//练习程序//对象class Point{ private int x;//横坐标 private int y;//纵坐标 Point(int x,int y) { this.x = x;...
  • Java作业-判断圆关系

    千次阅读 2017-09-23 19:45:40
    //判断两个关系 public static void judgeTwoCircle() { switch (cal()) { case 0: System.out.println("两个相离"); break; case 1: System.out.println("两个外切"); break; case 2...
  • C++ 实现确定的位置关系
  • 如果要判断点关系,首先需要创建一个类和一个类。类中要包含数据成员:半径和数据成员圆心,类中要包含数据成员:的x坐标和y坐标。 2.例图 如图,建立了一个圆心为(10,0),半径为10的,和...
  • java判断两个圆关系(相离,相切,相交)求代码关注:137答案:1mip版解决时间 2021-01-31 09:52提问者神经质2021-01-31 02:33用面向对象的思想设计一个Circle类,该类包括的域有:圆心坐标和圆的半径;静态域π包括的...
  • 自定义方法检查两个圆形的位置关系 检查两个圆形的位置关系 // return: -1 不相交 0 正常相交 1大包含小
  • 1.两圆关系: 24 2.判断圆是否在矩形内: 24 3.到平面的距离: 25 4.是否在直线同侧: 25 5.镜面反射线: 25 6.矩形包含: 26 7.两圆交点: 27 8.两圆公共面积: 28 9. 圆和直线关系: 29 10. 内切圆: ...
  • (3)会用到直线的距离来判断直线与的位置关系. (二)过程与方法 设直线l:ax + by + c = 0,C:x2 + y2 + Dx + Ey + F = 0,的半径为r,圆心到直线的距离为d,则判别直线与的位置关系的依据有以下几:...
  • 牛客网基础C++编程-的位置关系
  • C++判断圆关系(用Circle和Point类)

    千次阅读 2019-04-22 19:14:53
    C++判断圆关系(用Circle和Point类) 构造函数不是Circle(int cx, int cy, int r)而是Circle(Point pc,float r)时 #include<iostream> #include<cmath> using namespace std; const double PI=3.14; ...
  • 提示用户输入2个的圆心坐标和各自的半径值,判断并输出这两个之前的位置关系。 两个之间的位置关系有如下三种: 两个包含时输出: (x1, y1) - r1 包含 (x2, y2) - r2 两个相交时输出: (x1, y1) -...
  • VC++实现判断点与任意三角形及其外接圆关系,以及判断任意两条直线关系
  • 平面上任意椭圆与的位置关系

    千次阅读 2019-05-07 16:09:46
    问题描述 : 如上图所示,我们的目的是判断在二维空间中任意一椭圆与任意一点pi(xi,yi)p_i(x_i,y_i)pi​(xi​,yi​)的位置关系,这样的位置关系有三种 : 1 在椭圆上; 2 在椭圆中; 3 在椭圆外。 解决思路 : 从最...
  • 用C++判断直线和的位置关系 通过C程序判断直线和相离,相切还是相交
  • 定义一个表示的类Circle,包含x,y,r三个私有变量,分别为圆心x坐标,圆心y坐标和半径。声明Circle类的两个友元函数distance和relation,分别计算两圆心位置和判断位置关系
  • Java学习-面向对象实现关系判断

    千次阅读 热门讨论 2018-04-16 20:39:18
     面向对象是Java中的基本,根源,本篇博客,小编将结合一个两个类的关系,来好好地整理一下面向对象中的那些事。 两个类  一、创建类Point 1.成员变量:x,y 2.构造方法:Point(doublex,double y...
  • 计算并判断点的位置关系。 无分区版 : #include <iostream> using namespace std; //设置 类 class Point { private: int p_x; int p_y; public: //设置横坐标 void setX(int x){ p_x = x; }...
  • 判断一个关系

    千次阅读 2017-03-13 15:33:25
    //判断点关系。 class Points { private int x; private int y; Points(int x,int y) { this.x=x; this.y=y; } public int getX()//获取x的值 { return x; } p
  • c++ 判断位置关系

    千次阅读 2019-06-05 08:46:00
    对于两的位置一般有五种关系: (1) 外离:两的半径之和小于两圆心距离 (2) 外切:两的半径之和等于两圆心距离 (3) 相交:两的半径之和大于两圆心距离,两圆心距离大于两半径之差 (4) 内切:两的...
  • 具体来说图形学除了常用的计算几何方法外,还涉及到向量、点线关系以及与多边形关系求解等数学知识,还有一些平面几何的基本原理。当然如果单从实用的图形学所涉及到的数学基础,或者说想学会图形学所需要掌握的...
  • struct circle { double x,y,r;...写程序,分别输入两个(圆点、半径),使用cover判断一个能否盖住另一个,能输出YES,否输出NO。 不是只判断半径大小,是两个各在自己的位置(圆心决定),一个能否盖住另一个。
  • 之间的距离为d,两的半径分别为r1,r2 ①d>r1+r2:两相离 ②d=r1+r2:两外切 ③|r1-r2|两相交 ④d=|r1-r2|:两内切 ⑤d<|r1-r2|:两内含 #include #include #include #include #include...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,020
精华内容 35,608
关键字:

判断点圆关系