几何对象基本元素与表现

点与向量

点 (point) 表示空间中的位置,它有空间中的坐标,例如在三维空间中,点有 (x, y, z) 坐标。

向量 (vector) 是有方向的量,它可以表示在空间中的移动。向量可以通过两个点的差计算,它连接起始点和终止点。

结构体:

class Point{
    double x;
    double y;
}

向量(Vector)也可以使用点的结构体来使用。

线段与直线

线段 (line segment) 是由两个端点组成的有向的有限长度的直线。

直线 (line) 是由无限多个点组成的无限长的线。

与线段不同,直线没有端点,它一直延伸到无穷远。

结构体:

class Segment{
    Point p1;
    Point p2;
}

同时直线和线段可以使用相同的方法实现。

圆 (circle) 是一种二维图形,由一个中心点和一个固定半径组成。所有离中心点距离相等的点在同一个圆上。圆的定义可以通过一个方程来表示,例如 (x-a)^2 + (y-b)^2 = r^2,其中 (a,b) 是圆心,r 是半径。

表示圆的类:

class Circle{
    Point c;
    double r;
}

此外多边形可以使用点的序列来表示,通常使用Point数组或List来表示。

向量的基本运算

 简单实现:

class Point{
    double x;
    double y;

    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }

   //加
    private Point add(Point p){
        return new Point(x+p.x,y+p.y);
    }
    //减
    private Point sub(Point p){
        return new Point(x-p.x,y-p.y);
    }
    //乘
    private Point mul(double k){
        return new Point(x*k,y*k);
    }
}

 向量大小

向量大小,也称为向量的模,是一维向量的长度,它反映了向量在空间中的长度。向量的模可以通过欧几里得公式来计算。

 double abs (Point a){
        return Math.sqrt(a.x*a.x+a.y*a.y);
    }

 向量内积

向量内积(也称为点积)是两个向量的数学表达式,用于评估向量的相似性。它可以计算为两个向量的对应元素的乘积的和。结果是一个标量,可以用来评估向量的相关性、方向和长度。

  double dot(Point a,Point b){
        return a.x*b.x+a.y*b.y;
    }

 向量外积

向量外积(也称为叉积)是两个向量的数学表达式,用于描述向量在三维空间中的相对位置。它返回一个向量,该向量的方向垂直于原始两个向量,长度为两个向量所围成平行四边形的面积。

 double cross(Point a,Point b){
        return a.x*b.y-a.y*b.x;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值