大大大橙子也没有了 2019-01-03 10:00 采纳率: 0%
浏览 5122
已采纳

用Python,已知两条线段的顶点坐标,求两条线的夹角

图片说明

如图所示的两条线,求它们的夹角,小白不会,求解决!!!

  • 写回答

3条回答 默认 最新

  • 暗香独自开 2019-01-06 00:12
    关注
    #两条线段的夹角的计算
    #向量思维
    import math
    import numpy as np
    
    #得到向量的坐标以及向量的模长
    class Point(object):
        def __init__(self, x1, y1, x2, y2):
            self.x1 = x1
            self.y1 = y1
            self.x2 = x2
            self.y2 = y2
    
        def vector(self):
            c = (self.x1 - self.x2, self.y1 - self.y2)
            return c
    
        def length(self):
            d = math.sqrt(pow((self.x1 - self.x2), 2) + pow((self.y1 - self.y2), 2))
            return d
    
    #计算向量夹角
    class Calculate(object):
        def __init__(self, x, y, m, n):
            self.x = x
            self.y = y
            self.m = m
            self.n = n
    
        def Vector_multiplication(self):
            self.mu = np.dot(self.x, self.y)
            return self.mu
    
        def Vector_model(self):
            self.de = self.m * self.n
            return self.de
    
        def cal(self):
            result = Calculate.Vector_multiplication(self) / Calculate.Vector_model(self)
            return result
    
    if __name__ == '__main__':
    
        first_point = Point(1, 2, 3, 2)
        two_point = Point(3, 5, 4, 2)
        ca = Calculate(first_point.vector(), two_point.vector(), first_point.length(), two_point.length())
        print('两向量的夹角', ca.cal())
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!