@@ -736,6 +736,70 @@ def circle(r: any, r_is_d: bool = False, return_area: bool = False, return_circu
736736 return _area
737737 elif return_circumference :
738738 return _circumference
739+
740+ @staticmethod
741+ def trapezoid (a : any , b : any , c : any = None , d : any = None , h : any = None , return_area : bool = False , return_circumference : bool = False , return_both : bool = True , return_int : bool = False , return_string : bool = False ):
742+ """
743+ Calculate the Area or the Circumference of a Trapezoid.
744+ """
745+ from .highpymath import trapezoid_area as _ta
746+ from .highpymath import trapezoid_circumference as _tc
747+ if not return_area and not return_circumference and not return_both :
748+ raise MathValueError ("You need to specify one of the 3 arguments" )
749+ if return_area and return_circumference :
750+ raise MathValueError ("You need to specify one of the 3 arguments" )
751+ if return_area and return_both :
752+ return_both = False
753+ if return_circumference and return_both :
754+ return_both = False
755+ return_float = True
756+ if return_int :
757+ return_float = False
758+ if return_area and h is None :
759+ raise MathValueError ("You need to specify h" )
760+ if return_circumference or return_both and c is None :
761+ raise MathValueError ("You need to specify c" )
762+ if return_circumference or return_both and d is None :
763+ raise MathValueError ("You need to specify d" )
764+ if not isinstance (a , (int , float )):
765+ raise MathTypeError ("a must be a number" )
766+ if not isinstance (b , (int , float )):
767+ raise MathTypeError ("b must be a number" )
768+ if return_area or return_both and isinstance (h , int ):
769+ h = float (h )
770+ if return_circumference or return_both and isinstance (c , int ):
771+ c = float (c )
772+ if return_circumference or return_both and isinstance (d , int ):
773+ d = float (d )
774+ if isinstance (a , int ):
775+ a = float (a )
776+ if isinstance (b , int ):
777+ b = float (b )
778+ if return_area or return_both :
779+ _area = _ta (a = a , b = b , h = h )
780+ if return_circumference or return_both :
781+ _circumference = _tc (a = a , b = b , c = c , d = d )
782+ if return_int :
783+ if _area :
784+ _area = int (_area )
785+ if _circumference :
786+ _circumference = int (_circumference )
787+ elif return_float :
788+ if _area :
789+ _area = float (_area )
790+ if _circumference :
791+ _circumference = float (_circumference )
792+ if return_string :
793+ if _area :
794+ _area = str (_area )
795+ if _circumference :
796+ _circumference = str (_circumference )
797+ if return_both :
798+ return _area , _circumference
799+ elif return_area :
800+ return _area
801+ elif return_circumference :
802+ return _circumference
739803
740804GeometricProperties2D = GeometricProperties2D ()
741805
0 commit comments