精华内容
下载资源
问答
  • 2021-03-08 05:11:08

    此段代码略有难度,小伙伴们,可以自己尝试先做。实在不行,再来看代码。欢迎关注我嗷~。

    都说两点确定一条直线,那么设计一个直线类Line,需要通过两个点Point对象来确定。Line类具体要求如下:

    1)定义两个Point对象p1,p2;

    2)写出有参构造方法,传递两个对象值给p1,p2

    3)为p1,p2写出setters,和getters方法

    4)为Line写出一个getLength方法求直线中两点的长度

    5) 为LIne写一个ToString方法,方法如下所示:

    public String toString() { return "Line [p1=" + p1 + ", p2=" + p2 + "]"; }

    在Main类的main方法中,定义一个Line数组,数组长度通过键盘给出,然后通过键盘为每线段的两个Point对象的坐标赋值,并生成相应Line对象放入数组中,循环数组,输出每条直线的信息,以及两个点之间的距离。

    Point 类如下所示:

    public class Point {

    private int x, y;// x,y为点的坐标

    //求两点之间的距离

    public double distance(Point p1) {

    return Math.sqrt((p1.x -this.x)*(p1.x -this.x)+(p1.y-this.y)*(p1.y-this.y));

    }

    public Point(int x, int y) {

    super();

    this.x = x;

    this.y = y;

    }

    public int getX() {

    return x;

    }

    public void setX(int x) {

    this.x = x;

    }

    public int getY() {

    return y;

    }

    public void setY(int y) {

    this.y = y;

    }

    public Point() {

    super();

    x = y =0;

    }

    @Override

    public String toString() {

    return "Point [x=" + x + ", y=" + y + "]";

    }

    }

    输入格式:

    第一行输入数组的长度n 每一行输入一个Line对象的两个点对象的 x y的坐标,中间用空格隔开

    输出格式:

    循环输出,输出直线的信息,以及每条直线的两个点的距离,保留一位小数。

    输入样例:

    在这里给出一组输入。例如:

    2

    0 0 2 3

    1 3 2 5

    输出样例:

    在这里给出相应的输出。例如:

    Line [p1=Point [x=0, y=0], p2=Point [x=2, y=3]]

    此线段的长度为:3.6

    Line [p1=Point [x=1, y=3], p2=Point [x=2, y=5]]

    此线段的长度为:2.2

    答案:

    import java.util.Scanner;

    public class Main {

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    Scanner iScanner=new Scanner(System.in);

    line line1=new line();

    int b=iScanner.nextInt();

    double[] a=new double[b];

    int z[][]=new int[b][4];

    for (int i = 0; i < z.length; i++) {

    for (int j = 0; j < z[i].length; j++) {

    int c=iScanner.nextInt();

    z[i][j]=c;

    }

    }

    for (int i = 0; i < z.length; i++) {

    line1.p1=new Point(z[i][0],z[i][1]);

    line1.p2=new Point(z[i][2],z[i][3]);

    a[i]=line1.getLength(line1.p1,line1.p2 );

    System.out.println(line1.toString());

    System.out.printf("此线段的长度为:%.1f",a[i]);

    System.out.println();

    }

    }

    }

    class Point {

    int x;// x,y为点的坐标

    int y;

    //求两点之间的距离

    Point p1,p2;

    public double distance(Point p1) {

    return Math.sqrt((p1.x -this.x)*(p1.x -this.x)+(p1.y-this.y)*(p1.y-this.y));

    }

    public Point(int x, int y) {

    super();

    this.x = x;

    this.y = y;

    }

    public int getX() {

    return x;

    }

    public void setX(int x) {

    this.x = x;

    }

    public int getY() {

    return y;

    }

    @Override

    public String toString() {

    return "Point [x=" + x + ", y=" + y + "]";

    }

    public void setY(int y) {

    this.y = y;

    }

    public Point() {

    super();

    x = y =0;

    }

    }

    class line extends Point{

    public double getLength(Point p1,Point p2)

    {

    return Math.sqrt((p1.x -p2.x)*(p1.x -p2.x)+(p1.y-p2.y)*(p1.y-p2.y));

    }

    public String toString() {

    return "Line [p1=" + p1 + ", p2=" + p2 + "]";

    }

    }

    更多相关内容
  • 我想在图像上画一条穿过个像素的线,并用添加的新线保存它(不是绘图)。在这之后,我想用不同的颜色画一条垂直于前一条线的线。使用matplotlib实现这一点的最佳方法是什么?我用皮尔试过了。我没能做到。请看一下...

    我有一个图像,我正在使用pyfits加载到2D数组中。我想在图像上画一条穿过两个像素的线,并用添加的新线保存它(不是绘图)。在这之后,我想用不同的颜色画一条垂直于前一条线的线。使用matplotlib实现这一点的最佳方法是什么?我用皮尔试过了。我没能做到。请看一下代码并建议我一种方法。我也附上了图片def plotAxes(map, angle, x_centroid, y_centroid):

    hor = math.floor(x_centroid + 20*(math.cos(angle)))

    ver = math.floor(y_centroid - 20*(math.sin(angle)))

    hor1 = math.floor(x_centroid + 20*(math.cos(angle+90.0)))

    ver1 = math.floor(y_centroid - 20*(math.sin(angle+90.0)))

    map_height = len(map)

    map_width = len(map[0])

    point = [ver, hor]

    center = [y_centroid, x_centroid]

    Max = np.max(map)

    array = np.zeros((map_height, map_width), int)

    for i in range(0, map_height):

    for j in range(0, map_width):

    array[i][j] = (math.floor((float(map[i][j])/float(Max))*255))

    im = Image.fromarray(np.uint8(array))

    draw = ImageDraw.Draw(im)

    draw.line((x_centroid,y_centroid, hor,ver ), fill="red")

    draw.line((x_centroid,y_centroid, hor1,ver1 ), fill="red")

    im.show()

    但是上面的代码似乎没有垂直打印这些行。角度看起来是120而不是90。在

    31c33450e49d96353a470108390e54a1.png

    展开全文
  • 7-5 两点成线 (10 分) JAVA PTA

    千次阅读 2021-04-12 11:20:38
    都说两点确定一条直线,那么设计一个直线类Line,需要通过两个点Point对象来确定。Line类具体要求如下: 1)定义两个Point对象p1,p2; 2)写出有参构造方法,传递两个对象值给p1,p2 3)为p1,p2写出setters,和...

    7-5 两点成线 (10 分)
    都说两点确定一条直线,那么设计一个直线类Line,需要通过两个点Point对象来确定。Line类具体要求如下:
    1)定义两个Point对象p1,p2;
    2)写出有参构造方法,传递两个对象值给p1,p2
    3)为p1,p2写出setters,和getters方法
    4)为Line写出一个getLength方法求直线中两点的长度
    5) 为LIne写一个ToString方法,方法如下所示:
    public String toString() { return “Line [p1=” + p1 + “, p2=” + p2 + “]”; }

    在Main类的main方法中,定义一个Line数组,数组长度通过键盘给出,然后通过键盘为每线段的两个Point对象的坐标赋值,并生成相应Line对象放入数组中,循环数组,输出每条直线的信息,以及两个点之间的距离。
    Point 类如下所示:

    public class Point {
        private int x, y;// x,y为点的坐标
        //求两点之间的距离
        public double distance(Point p1) {
            return Math.sqrt((p1.x -this.x)*(p1.x -this.x)+(p1.y-this.y)*(p1.y-this.y));
        }
        public Point(int x, int y) {
            super();
            this.x = x;
            this.y = y;
        }
        public int getX() {
            return x;
        }
        public void setX(int x) {
            this.x = x;
        }
        public int getY() {
            return y;
        }
        public void setY(int y) {
            this.y = y;
        }
        public Point() {
            super();
            x = y =0;
        }
        @Override
        public String toString() {
            return "Point [x=" + x + ", y=" + y + "]";
        }
    }
    

    输入格式:
    第一行输入数组的长度n 每一行输入一个Line对象的两个点对象的 x y的坐标,中间用空格隔开

    输出格式:
    循环输出,输出直线的信息,以及每条直线的两个点的距离,保留一位小数。

    输入样例:
    在这里给出一组输入。例如:

    2
    0 0 2 3
    1 3 2 5
    输出样例:
    在这里给出相应的输出。例如:

    Line [p1=Point [x=0, y=0], p2=Point [x=2, y=3]]
    此线段的长度为:3.6
    Line [p1=Point [x=1, y=3], p2=Point [x=2, y=5]]
    此线段的长度为:2.2

    很遗憾测试点并不样例

    import java.util.Scanner; 
    
    class Point {
        private int x, y;// x,y为点的坐标
        //求两点之间的距离
        public double distance(Point p1) {
            return Math.sqrt((p1.x -this.x)*(p1.x -this.x)+(p1.y-this.y)*(p1.y-this.y));
        }
        public Point(int x, int y) {
            super();
            this.x = x;
            this.y = y;
        }
        public int getX() {
            return x;
        }
        public void setX(int x) {
            this.x = x;
        }
        public int getY() {
            return y;
        }
        public void setY(int y) {
            this.y = y;
        }
        public Point() {
            super();
            x = y =0;
        }
        @Override
        public String toString() {
            return "Point [x=" + x + ", y=" + y + "]";
        }
    }
    class Line{
    	Point p1,p2;
    	public Line(Point x,Point y){
    		p1=x;
    		p2=y;
    	}
    	
    	public Point getP1() {
    		return p1;
    	}
    
    	public void setP1(Point p1) {
    		this.p1 = p1;
    	}
    
    	public Point getP2() {
    		return p2;
    	}
    
    	public void setP2(Point p2) {
    		this.p2 = p2;
    	}
    	public double getLength() {
    		return p1.distance(p2);
    	}
    	public String toString() {
    		return "Line [p1=" + p1 + ", p2=" + p2 + "]";
    		}
    }
    public class Main {
    
    	public static void main(String[] args) {
    		
    		Scanner sc = new Scanner(System.in);
    		int n=sc.nextInt();
    		while(n!=0) {
    			int a=sc.nextInt();
    			int b=sc.nextInt();
    			int c=sc.nextInt();
    			int d=sc.nextInt();
    			n--;
    			Point x=new Point(a,b);
    			Point y=new Point(c,d);
    			Line l =new Line(x,y);
    			System.out.println(l.toString());
    			System.out.println("此线段的长度为:"+String.format("%.1f", l.getLength()));
    			//l.getLength();
    			}
    	   
             		
    		
    	}
    
    }
    

    代码说明

    • 引入 :import java.util.Scanner;
    • class Point {},复制题目给的
      毕竟一个类文档只能有一个public类
      这个类的public可以选择删去
    • Line类
    • Point p1,p2;(题目第一条)
    • 写出有参构造方法(题目第二条)
    • source->generate setters and getter
      给p1,p2,加上getset (题目第三条)
    • public double getLength() 直接调用 Point类的(题目第四条)
    • public String toString() 复制题目里给的(题目第五条)
    • Main 自由发挥
    展开全文
  • 把描述直角坐标系上的一个点的类作为基类派生出描述一条直线的泪和一个描述三角形的类定义成员函数,要求两点间的距离和三角形的面积 题目要求把描述直角坐标系上的一个点的类作为基类派生出描述一条直线的泪和一个...

    把描述直角坐标系上的一个点的类作为基类派生出描述一条直线的泪和一个描述三角形的类定义成员函数,要求两点间的距离和三角形的面积


    在这里插入图片描述

    #include<iostream>
    #include<string>
    #include<cmath>
    using namespace std;
    
    class Point
    {
    protected:
        int x1, y1;
    public:
        Point(int a, int b)
        {
            x1 = a; y1 = b;
        }
    };
    
    class Line :public Point
    {
    protected:
        int x2, y2;
    public:
        Line(int a, int b, int c, int d) :Point(a, b), x2(c), y2(d) {}
    };
    
    class Triangle :public Line
    {
    protected:
        int x3, y3;
        double area;
    public:
        Triangle(int a, int b, int c, int d, int e, int f) :Line(a, b, c, d), x3(e), y3(f) {}
        void f() {
            double x, y, z, s;
            x = sqrt((double)(x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
            y = sqrt((double)(x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3));
            z = sqrt((double)(x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1));
            s = (x + y + z) / 2;
            area = sqrt(s * (s - x) * (s - y) * (s - z));
        }
    
        void print()
        {
            cout << "(" << x1 << "," << y1 << ")" << "(" << x2 << "," << y2 << ")" << "(" << x3 << "," << y3 << ")" << endl;
            cout << "area=" << area << endl;
        }
    };
    
    
    int main()
    {
        int a[6];
        for (int i = 0; i < 6; i++)
            cin >> a[i];
        Triangle tri(a[0], a[1], a[2], a[3], a[4], a[5]);
        tri.f();
        tri.print();
        return 0;
    }
    
    
    展开全文
  • 已知A(x1,y1)、B(x2,y2)为直线L1上C(x3,y3)、D(x4,y4)为直线L2上,求解直线的方程以及交点坐标,直接贴代码 //定义Point2f结构体 struct Point2f { float x; float y; } // ...
  • * 判断由x3, y3定义是否在由x1, y1 和 x2, y2定义直线上(不是线段)? * @param x1 - 直线的第的x坐标 * @param y1 - 直线的第的y坐标 * @param x2 - 直线的第二个的x坐标 *
  • import math class Point: def __init__(self, x, y): self.x = x self.y = y def getX(self): return self.x def getY(self): return self.y class Line: def...
  • 两点生成曲线

    千次阅读 2018-01-22 20:38:43
    看了标题的人可能会有这样的反应:两点不是能确定无限条曲线吗,这不是扯淡吗。。其实现在的需求是这样的:在一个游戏里,我们需要根据起点和落点生成一条看上去合理的曲线运动轨迹。在我的想象中,它至少应该是往...
  •  给定n+ 1个控制P0,P1, ...,Pn和个节点向量U= {u0,u1, ...,um},p次B-样条曲线由这些控制和节点向量U定义    其中Ni,p(u)是p次B-样条基函数。  B-样条曲线形式与贝塞尔曲线相似 。不像贝塞尔曲线,B-样条...
  • 声明个类Point,然后利用它声明个组合类Line,实现由用户输入两点确定直线的长度和斜率,编写程序实现测试
  • using System;namespace day327{ public class CPoint { double x; double y; public CPoint(double x,double y) { this.x = x; this.y = y; } ...
  • 本文总结了B样条曲线的产生背景,通过B样条曲线与Bezier曲线的对比分析,来帮助理解B样基函数的定义,以及其定义区间、节点向量等相关概念。
  • 【直线 是1阶的曲线】  这是计算机图形学样条曲线绘制或数学上插值函数的问题。首先,例如一条直线两点可以... 也即:两点确定一条直线(一阶多项式),三点确定一条抛物线(二阶多项式),有10个点就可以确定...
  • 两点的叉乘为过两点直线的系数

    千次阅读 多人点赞 2018-01-12 10:37:45
    已知:二维平面的两点X(x1,y1),Y(x2,y2),证明X,Y两点的齐次式叉乘为过XY的直线的系数. 证明: 叉乘的定义为已知向量a = (a1,a2,a3), b=(b1,b2,b3), a叉乘b=(a2b3-a3b2, a3b1-a1b3, a1b2-a2b1)  因为XY的...
  • 第12届蓝桥杯 第题:《直线

    万次阅读 热门讨论 2022-02-06 15:47:09
    在平面直角坐标系中,两点可以确定一条直线。 给定平面上 20 × 2120×21 个整点 {(x, y)|0 ≤ x < 20, 0 ≤ y < 21, x ∈ Z, y ∈ Z}(x,y)∣0≤x<20,0≤y<21,x∈Z,y∈Z,即横坐标是 00 到 1919 (包含 ...
  • 在Matplotlib中的个图之间画线

    千次阅读 2020-12-11 09:50:04
    本示例在个轴上标记了同一点。必须注意坐标系,但变换会为您完成所有艰苦的工作。import matplotlib.pyplot as pltimport matplotlibimport numpy as npfig = plt.figure(figsize=(10,5))ax1 = fig.ad...
  • 判断直线的左右那

    千次阅读 2017-10-11 20:22:38
    方法:采用几何计算,求面积法。... 注意向量是有方向的... 判断 某一点在直线左右侧左右方向是相对前进方向...判断直线的左侧还是右侧是计算几何里面的个最基本算法.使用矢量来判断.  定义:平面上的三点P1
  • plt.show() #使用另种角检测函数 corners = cv2.goodFeaturesToTrack(gray, 6, 0.01, 5) corners = np.int0(corners) for i in corners: x, y = i.ravel() cv2.circle(img, (x, y), 5, [0,0,0], -1) plt.axis('...
  • 2、遍历出所有取出两点的情况(不考虑先后顺序),根据任意两点确定一条直线,直线参数为k斜率,b与y轴交点的纵坐标(此时x=0),将他们放入一个列表中 3、将所有直线放入一个集合并完成去重操作,增加直线的第三个...
  • B样条曲线

    万次阅读 2018-10-18 17:41:06
    学习B样条曲线需要先学习贝塞尔曲线,若未了解,看我篇上博客... 1 )缺乏局部修改性,即改变某控制对整个曲线都有影响。  2 )n 较大时,特征多边形的边数较多,对曲线的控制减弱。  ...
  • B样(贝塞尔曲线和b样条曲线)

    千次阅读 2021-01-26 17:50:09
    在数学的子学科数值分析里,B-样条是...在实际生产中,我们测量得到的是个个离散的,那么我们要知道相邻之间的值就.B样方法是在保留Bezier方法的优点,同时克服其由于整体表示带来不具有局部性质的缺...
  • Python求两点之间的直线距离(两种方法)

    万次阅读 多人点赞 2018-08-13 14:39:31
    方法: #导入math包 import math #定义点的函数 class Point: def __init__(self,x=0,y=0): self.x=x self.y=y def getx(self): return self.x def gety(self): return self.y ...
  • 在二维平面内,已知共的多线基本可以通过解析几何的方法将求出。但是在计算机中,由于浮点数等计算误差,导致多线中相交的不在同一位置。另外,在现实情况中,测距...欧几里得空间中二维平面两直线交点 ...
  • 1、方向向量(direction vector)是个数学概念,空间直线的方向用个与该直线平行的非零向量来表示,该向量称为这条直线个方向向量。 2、直线l⊥α,取直线l的方向向量a,则向量a叫做 法向量 平面α的法...
  • Prism使用个(X)独立变量执行非线性回归,但稍微聪明一点,也可用个独立变量来拟合数据,有三种不同情况:拟合曲线族上图显示了竞争性酶动力学的样本数据,并显示了如何拟合曲线族。在此,每条曲线显示了酶活性是...
  • 已知贝塞尔曲线上的求控制

    千次阅读 2021-07-08 17:56:43
    #include <opencv2/opencv.hpp> #include <iostream> #include <vector> #include <cmath> using namespace std; using namespace cv; vector<...//这个参数取决于中间...
  • #判断空间中的3个是否在同一直线上: 用向量计算时,需要确定两个向量的长度和角度(角度由x、y、z轴的值确定)都相等,才能确保在同一直线上 @staticmethod def isThreePointsInSameLine(p1, p2, p3): distance12...
  • 先马 1、LINE并不等同于PLOT,我查过HELP,很多属性不同!...因此建议使用PLOT,因为当你在几个函数或M文件都要画图时,如果使用LINE,你必须记录每线的句柄值,而且还需要定义为全局变量才可以用delete! 网
  • B样条曲线 及 B样曲面

    千次阅读 2020-08-01 23:08:37
    例如,现在有n+1个点,在每两点之间构造一条多项式,则有n个小区间。每个小区间构造一条三次多项式,变成了n段的三次多项式拼接在一起,段与段之间要C²连续,这就是三次样条 定义  P(t)=∑i=0nPiNi,k(t)P(t)=\sum_...
  • matlab求两直线的夹角

    千次阅读 2020-12-21 01:31:30
    这里给出个具体的处理方式,其基本思想是:首先基于给定的节点定义出直线一般方程,然后求解方程组得到直线方程参数,最后根据得到的两条直线来求解出交点。因此,问题的输入为四个已知节点,输出为由已定节点定义...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 104,809
精华内容 41,923
关键字:

两点确定一条直线的定义