triangle_area_calculators库发布

最近将在pip网站上发布triangle_area_calculators库(我编写的python第三方库)

triangle_area_calculators库用于计算不同类型及不同已知量的三角形面积

在triangle_area_calculators库中,有一个名为TriangleAreaCalculators的类

可以通过from triangle_area_calculators import TriangleAreaCalculators方式引用

 

 

import math


class TriangleAreaCalculators:
    HALF = 0.5

    @staticmethod
    def area_by_base_height(base, height):
        return TriangleAreaCalculators.HALF * base * height

    @staticmethod
    def area_by_heron(a, b, c):
        p = (a + b + c) / 2
        return math.sqrt(p * (p - a) * (p - b) * (p - c))

    @staticmethod
    def area_by_two_sides_angle(a, b, gamma_degrees):
        gamma_radians = math.radians(gamma_degrees)
        return TriangleAreaCalculators.HALF * a * b * math.sin(gamma_radians)

    @staticmethod
    def area_by_coordinates(x1, y1, x2, y2, x3, y3):
        return TriangleAreaCalculators.HALF * abs(x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2))

    @staticmethod
    def area_by_vectors(A_x, A_y, B_x, B_y):
        return TriangleAreaCalculators.HALF * abs(A_x * B_y - A_y * B_x)

    @staticmethod
    def area_of_right_triangle_by_two_legs(a, b):
        return TriangleAreaCalculators.HALF * a * b

    @staticmethod
    def area_of_right_triangle_by_hypotenuse_and_leg(c, a):
        theta_radians = math.acos(a / c)
        return TriangleAreaCalculators.HALF * a * c * math.sin(theta_radians)

    @staticmethod
    def area_of_equilateral_triangle(a):
        return (math.sqrt(3) / 4) * a ** 2

    @staticmethod
    def area_of_isosceles_triangle_by_base_angle(b, a, theta_degrees):
        theta_radians = math.radians(theta_degrees)
        return TriangleAreaCalculators.HALF * b * a * math.sin(theta_radians)

    @staticmethod
    def area_of_isosceles_triangle_by_height(b, h):
        return TriangleAreaCalculators.HALF * b * h

    @staticmethod
    def area_of_isosceles_right_triangle(a):
        return TriangleAreaCalculators.HALF * a ** 2

    @staticmethod
    def area_of_circumscribed_triangle(R, alpha_degrees):
        alpha_radians = math.radians(alpha_degrees)
        return TriangleAreaCalculators.HALF * R ** 2 * math.sin(alpha_radians)
        
'''
#使用示例
from triangle_area_calculators import TriangleAreaCalculators


# 示例1:使用底和高计算三角形面积
base = 5
height = 8
print("底为", base, "高为", height, "的三角形面积:", TriangleAreaCalculators.area_by_base_height(base, height))

# 示例2:使用海伦公式计算三角形面积(已知三边)
a = 3
b = 4
c = 5
print("三边分别为", a, b, c, "的三角形面积:", TriangleAreaCalculators.area_by_heron(a, b, c))

# 示例3:使用两边和夹角计算三角形面积(这里传入角度制角度)
a_side = 6
b_side = 8
angle_gamma_degrees = 60
print("两边分别为", a_side, b_side, "夹角为", angle_gamma_degrees, "度的三角形面积:", TriangleAreaCalculators.area_by_two_sides_angle(a_side, b_side, angle_gamma_degrees))

# 示例4:使用坐标法计算三角形面积
x1, y1 = 1, 1
x2, y2 = 3, 4
x3, y3 = 5, 2
print("坐标分别为(", x1, y1, "), (", x2, y2, "), (", x3, y3, ")的三角形面积:", TriangleAreaCalculators.area_by_coordinates(x1, y1, x2, y2, x3, y3))

# 示例5:使用向量法计算三角形面积
A_x, A_y = 2, 3
B_x, B_y = 5, 7
print("向量坐标分别为(", A_x, A_y, "), (", B_x, B_y, ")的三角形面积:", TriangleAreaCalculators.area_by_vectors(A_x, A_y, B_x, B_y))

# 示例6:计算直角三角形面积(已知两条直角边)
right_a = 3
right_b = 4
print("两条直角边分别为", right_a, b, "的直角三角形面积:", TriangleAreaCalculators.area_of_right_triangle_by_two_legs(right_a, right_b))

# 示例7:计算直角三角形面积(已知斜边和一条直角边)
right_c = 5
right_a = 3
print("斜边为", right_c, "一条直角边为", right_a, "的直角三角形面积:", TriangleAreaCalculators.area_of_right_triangle_by_hypotenuse_and_leg(right_c, right_a))

# 示例8:计算等边三角形面积
equilateral_a = 6
print("边长为", equilateral_a, "的等边三角形面积:", TriangleAreaCalculators.area_of_equilateral_triangle(equilateral_a))

# 示例9:计算等腰三角形面积(已知底边、等腰边和顶角,这里传入角度制角度)
isosceles_b = 4
isosceles_a = 5
isosceles_theta_degrees = 45
print("底边为", isosceles_b, "等腰边为", isosceles_a, "顶角为", isosceles_theta_degrees, "度的等腰三角形面积:", TriangleAreaCalculators.area_of_isosceles_triangle_by_base_angle(isosceles_b, isosceles_a, isosceles_theta_degrees))

# 示例10:计算等腰三角形面积(已知等腰边和底边上的高)
isosceles_a_side = 5
isosceles_height = 3
print("等腰边为", isosceles_a_side, "底边上的高为", isosceles_height, "的等腰三角形面积:", TriangleAreaCalculators.area_of_isosceles_triangle_by_height(isosceles_a_side, isosceles_height))

# 示例11:计算等腰直角三角形面积
isosceles_right_a = 4
print("边长为", isosceles_right_a, "的等腰直角三角形面积:", TriangleAreaCalculators.area_of_isosceles_right_triangle(isosceles_right_a))

# 示例12:计算圆内接三角形面积(这里传入角度制角度)
R_radius = 3
alpha_degrees = 90
print("圆半径为", R_radius, "中心角为", alpha_degrees, "度的圆内接三角形面积:", TriangleAreaCalculators.area_of_circumscribed_triangle(R_radius, alpha_degrees))
'''

 

 

代码链接🔗:

http://localhost:8888/tree

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式数据库:核心概念、架构设计及应用实践

随着互联网和大数据技术的迅猛发展,传统单体数据库架构在处理大规模数据、支持高并发访问方面面临严峻挑战。分布式数据库应运而生,以其高可用性、扩展性和容错能力,逐渐成为现代化企业数据库架构的主流选择。本文将系统性地介绍分布式数据库…

2024年北京海淀区中小学生信息学竞赛校级预选赛试题

2024年北京海淀区中小学生信息学竞赛校级预选赛试题 题目总数:24 总分数:100 编程基础知识单选题 第 1 题 单选题 关于 2024年海淀区信息学竞赛的描述错误的是( ) A.报名在网上报名系统进行 B.必须经过学籍所在学校的指导教师审核 C.学校…

软件测试学习笔记丨Vue常用指令-输入绑定(v-model)

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/23461 指令 指令是将一些特殊行为应用到页面DOM元素的特殊属性 格式都是以v-开始的,例如: v-model:双向绑定v-if和v-else:元素是否存在v-sho…

PySpark 本地开发环境搭建与实践

目录 一、PySpark 本地开发环境搭建 (一)Windows 本地 JDK 和 Hadoop 的安装 (二)Windows 安装 Anaconda (三)Anaconda 中安装 PySpark (四)Pycharm 中创建工程 二、编写代码 …

解决 Spring 异步处理中的 JDK 动态代理问题及相关错误分析

解决 Spring 异步处理中的 JDK 动态代理问题及相关错误分析 遇到的问题: 在使用 Spring 的 Async 注解开启异步处理时,遇到以下错误: The bean ServiceImplChannel could not be injected as a com.wn.order.pay.recharge.controller.Serv…

UI自动化测试 —— CSS元素定位实践!

前言 自动化测试元素定位是指在自动化测试过程中,通过特定的方法或策略来准确识别和定位页面上的元素,以便对这些元素进行进一步的操作或断言。这些元素可以是文本框、按钮、链接、图片等HTML页面上的任何可见或不可见的组件。 在自动化测试中&#xf…

封装一个请求的hook(react函数组件)

对于后台系统&#xff0c;上面筛选&#xff0c;下面表格分页的页面&#xff0c;这个hook非常实用 omitBy方法&#xff1a;过滤不为undefined的对象属性 export const omitBy <T extends IObject, K extends keyof T>(object:T, predicate:(value:T[K]) > boolean):I…

AI大模型重塑软件开发:流程、优势、挑战与展望

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

一篇文章教会你,Pycharm 的常用配置及快捷键~

每一位Python开发者都熟悉PyCharm这个强大的IDE&#xff0c;它提供了丰富的功能来提高编程效率。但你是否充分利用了PyCharm的所有配置和快捷键&#xff1f;今天&#xff0c;我们就来深度剖析PyCharm的常用配置和快捷键&#xff0c;让你从入门到精通&#xff0c;提升编程效率&a…

聚划算!Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测

聚划算&#xff01;Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测 目录 聚划算&#xff01;Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 聚划算&#xff01;Tran…

【网络安全】|kali中安装nessus

1、使用 df -h 命令查看磁盘使用情况&#xff0c;确保磁盘容量大于40G 简单粗暴办法&#xff1a;重装系统&#xff0c;装系统中注意磁盘空间相关的选项 //磁盘扩容&#xff1a;https://wiki.bafangwy.com/doc/670/ 2、安装 nessus 安装教程 https://blog.csdn.net/Cairo_A/a…

sqlserver、达梦、mysql调用存储过程(带输入输出参数)

1、sqlserver&#xff0c;可以省略输出参数 --sqlserver调用存储过程&#xff0c;有输入参数&#xff0c;有输出参数--省略输出参数 exec proc_GetReportPrintData 1, , , 1--输出参数为 null exec proc_GetReportPrintData 1, , , 1, null--固定输出参数 exec proc_GetReport…

要在微信小程序中让一个 `view` 元素内部的文字水平垂直居中,可以使用 Flexbox 布局

文章目录 主要特点&#xff1a;基本用法&#xff1a;常用属性&#xff1a; 要在微信小程序中让一个 view 元素内部的文字水平垂直居中&#xff0c;可以使用 Flexbox 布局。以下是如何设置样式的示例&#xff1a; .scan-button {display: flex; /* 启用 Flexbox 布局 */justify…

Java基础-I/O流

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 字节流 定义 说明 InputStream与OutputStream示意图 说明 InputStream的常用方法 说明 OutputStrea…

【Linux】简易版shell

文章目录 shell的基本框架PrintCommandLineGetCommandLineParseCommandLineExecuteCommandInitEnvCheckAndExecBuildCommand代码总览运行效果总结 shell的基本框架 要写一个命令行我们首先要写出基本框架。 打印命令行获取用户输入的命令分析命令执行命令 基本框架的代码&am…

Java项目实战II基于Java+Spring Boot+MySQL的网上摄影工作室(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着互联网…

宝塔Linux面板安装PHP扩展失败报wget: unable to resolve host address ‘download.bt.cn’

一、问题&#xff1a; 当使用宝塔面板安装PHP扩展失败出现如下错误时 Resolving download.bt.cn(download.bt.cn)...failed: Connection timed out. wget: unable toresolve host address download.bt.cn’ 二、解决&#xff1a; 第一步&#xff1a;如下命令执行拿到返回的I…

攻防靶场(28):通过SNMP进行信息收集 JOY

目录 1.侦查 1.1 获取目标网络信息&#xff1a;IP地址 1.2 主动扫描&#xff1a;扫描IP地址块 1.3 收集受害者主机信息&#xff1a;软件 2. 数据窃取 2.1 通过备用协议窃取&#xff1a;通过未加密的非C2协议窃取 2.2 通过备用协议窃取&#xff1a;通过未加密的非C2协议窃取 3. …

LeetCode:83. 删除排序链表中的重复元素 II(java) 保留一个重复的

目录 题目描述: 代码: 第一种: 第二种: 题目描述: 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,1,2] 输出&#xff1a;[1,2]示例 2&#xff1a…

C++ 类与对象(类、实例化、this指针)

目录 一、前言 二、正文 1.类和对象 1.1类定义格式 1.2访问限定符 1.3类域 2.实例化 2.1实例化概念 2.2对象大小 3.this指针 三、结语 一、前言 前面我们已经了解了缺省参数和函数重载等&#xff0c;今天让我们来学习类与对象吧&#xff0c;因为类与对象的内容很多&a…