angle module
AIU - holds all angle processesunknown
python
24 days ago
11 kB
6
Indexable
import math import main_messages from rich.console import Console from rich.table import Table console = Console() # ----------------------------------------------------------------------------------------------------------------------------------# def degrees_to_radians(deg_rad): return deg_rad * (math.pi / 180) def radians_to_degrees(rad_deg): return rad_deg * (180 / math.pi) def gradians_to_degrees(grad_deg): return grad_deg * (9 / 10) def dms_to_degrees(mins, secs): return (mins / 60) + (secs / 3600) # ----------------------------------------------------------------------------------------------------------------------------------# def angle_conversion_menu(): main_messages.separator() table = Table(title="", show_lines=True) table.add_column("🔶 Angle Conversion", justify="left", style="cyan", no_wrap=True) table.add_row("[1] Degrees ➡️ Radians") table.add_row("[2] Radians ➡️ Degrees") table.add_row("[3] Gradians ➡️ Degrees") table.add_row("[4] Minutes/Seconds ➡️ Degrees") table.add_row("[red][5] 🚪 Return to Main Menu[/red]") console.print(table) # ----------------------------------------------------------------------------------------------------------------------------------# def angle_conversion_confirm(): table = Table(title="", show_lines=True) table.add_column("ℹ️ Would you like to make another computation?", justify="left", style="cyan", no_wrap=True) table.add_row("[1] ✅ [green]Yes[/green]") table.add_row("[2] 🚪 [red]Return to Menu[/red]") console.print(table) # ----------------------------------------------------------------------------------------------------------------------------------# def angle_5_select(): try: console.print("[green]\n➡️ Enter your selection[/green] [[blue]1[/blue] - [blue]5[/blue]]:") angle_select = int(input("-- ")) except ValueError: console.print("[red]\n❌ Invalid Entry[/red]. Enter a number between 1 and 5!") return if angle_select < 1 or angle_select > 5: console.print("[red]\n❌ Out of Range[/red]. Enter a number between 1 and 5!") return if angle_select == 5: console.print("\n[yellow]🚪 Returning to Main Menu...[/yellow]") main_messages.separator() return "BACK_MAIN" # ----------------------------------------------------------------------------------------------------------------------------------# if angle_select == 1: while True: try: main_messages.separator() deg_rad = float(console.input("[green]➡️ Enter your degrees[/green]\n-- ")) if deg_rad == 0: console.print("\n❌ 0 degrees is still 0 in radians!") continue # Checks for "s" if amount is greater than 1 main_messages.separator() if deg_rad > 1 or deg_rad < 1: console.print(f"\n✅ {deg_rad} degrees is {degrees_to_radians(deg_rad):.4f} in radians") elif deg_rad == 1: console.print(f"\n✅ {deg_rad} degree is {degrees_to_radians(deg_rad):.4f} in radians") main_messages.separator() except ValueError: console.print("\n[red]\n❌ Invalid Entry[/red]. Enter a valid number.\n") continue while True: angle_conversion_confirm() main_messages.separator() try: return_menu = int(input("\n-- ")) if return_menu < 1 or return_menu > 2: console.print("\n[red]❌ Out of Range[/red]. Please enter [1 or 2].") main_messages.separator() elif return_menu == 1: break elif return_menu == 2: console.print("\n[yellow]🚪 Returning to Angle Menu... [/yellow]") return except ValueError: console.print("\n[red]❌ Invalid Entry[/red]. Enter a valid number.") main_messages.separator() # ----------------------------------------------------------------------------------------------------------------------------------# elif angle_select == 2: while True: try: main_messages.separator() rad_deg = float(console.input("[green]➡️ Enter your radians[/green]\n-- ")) if rad_deg == 0: console.print("\n❌ 0 radians is still 0 in degrees!") continue # Checks for "s" if amount is greater than 1 main_messages.separator() if rad_deg > 1 or rad_deg < 1: console.print(f"\n✅ A radians of {rad_deg} is {radians_to_degrees(rad_deg):.4f} in degrees") elif rad_deg == 1: console.print(f"\n✅ A radian of {rad_deg} is {radians_to_degrees(rad_deg):.4f} in degrees") main_messages.separator() except ValueError: console.print("\n[red]\n❌ Invalid Entry[/red]. Enter a valid number.\n") continue while True: angle_conversion_confirm() main_messages.separator() try: return_menu = int(input("\n-- ")) if return_menu < 1 or return_menu > 2: console.print("\n[red]❌ Out of Range[/red]. Please enter [1 or 2].") main_messages.separator() elif return_menu == 1: break elif return_menu == 2: console.print("\n[yellow]🚪 Returning to Angle Menu... [/yellow]") return except ValueError: console.print("\n[red]❌ Invalid Entry[/red]. Enter a valid number.") main_messages.separator() # ----------------------------------------------------------------------------------------------------------------------------------# elif angle_select == 3: while True: try: main_messages.separator() grad_deg = float(console.input("[green]➡️ Enter your gradian[/green]\n-- ")) if grad_deg == 0: console.print("\n❌ 0 gradian is still 0 in degrees!") continue # Checks for "s" if amount is greater than 1 main_messages.separator() if grad_deg > 1 or grad_deg < 1: console.print(f"\n✅ {grad_deg} Gradians is {gradians_to_degrees(grad_deg):.4f} in degrees") elif grad_deg == 1: console.print(f"\n✅ {grad_deg} Gradian is {gradians_to_degrees(grad_deg):.4f} in degrees") main_messages.separator() except ValueError: console.print("\n[red]\n❌ Invalid Entry[/red]. Enter a valid number.\n") continue while True: angle_conversion_confirm() main_messages.separator() try: return_menu = int(input("\n-- ")) if return_menu < 1 or return_menu > 2: console.print("\n[red]❌ Out of Range[/red]. Please enter [1 or 2].") main_messages.separator() elif return_menu == 1: break elif return_menu == 2: console.print("\n[yellow]🚪 Returning to Angle Menu... [/yellow]") return except ValueError: console.print("\n[red]❌ Invalid Entry[/red]. Enter a valid number.") main_messages.separator() # ----------------------------------------------------------------------------------------------------------------------------------# elif angle_select == 4: while True: try: main_messages.separator() mins = float(console.input("[green]➡️ Enter your minutes[/green]\n-- ")) secs = float(console.input("[green]➡️ Enter your seconds[/green]\n-- ")) if mins == 0 and secs == 0: console.print("\n❌ Both minutes and seconds cannot be zero! Enter a valid value!") continue if mins < 0 and secs < 0: console.print("\n❌ Both minutes and seconds cannot be negative! Enter a valid value!") continue if mins < 0 and secs >= 0: console.print("\n❌ Minutes cannot be negative! Enter a valid value!") continue if mins >= 0 and secs < 0: console.print("\n❌ Seconds cannot be negative! Enter a valid value!") continue main_messages.separator() min_label = "minute" if mins == 1 else "minutes" sec_label = "second" if secs == 1 else "seconds" console.print(f"\n✅ {mins} {min_label}, and {secs} {sec_label} is {dms_to_degrees(mins, secs):.4f} degrees") main_messages.separator() except ValueError: console.print("\n[red]❌ Invalid Entry[/red]. Enter a valid number.") continue while True: angle_conversion_confirm() main_messages.separator() try: return_menu = int(input("\n-- ")) if return_menu < 1 or return_menu > 2: console.print("\n[red]❌ Out of Range[/red]. Please enter [1 or 2].") main_messages.separator() elif return_menu == 1: break elif return_menu == 2: console.print("\n[yellow]🚪 Returning to Angle Menu... [/yellow]") return except ValueError: console.print("\n[red]❌ Invalid Entry[/red]. Enter a valid number.") main_messages.separator()
Editor is loading...
Leave a Comment