File size: 1,960 Bytes
9fd19e8
d0ce03d
 
c2697f2
d0ce03d
 
 
 
 
 
 
 
9fd19e8
dd37c0d
 
 
9fd19e8
dd37c0d
 
 
 
 
 
 
d0ce03d
dd37c0d
 
 
 
 
 
 
 
 
525729b
dd37c0d
d0ce03d
dd37c0d
 
 
 
 
d0ce03d
 
 
 
dd37c0d
d01a7a3
7e7097e
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import gradio as gr
import math
import pkg_resources # Для получения списка пакетов

def get_installed_packages_formatted_for_description():
    installed_packages = pkg_resources.working_set
    # Форматируем в одну строку с переносами для Markdown
    packages_list_str = "\n".join(sorted([f"- {i.key}=={i.version}" for i in installed_packages]))
    return f"\n\n---\n**Установленные пакеты:**\n{packages_list_str}"

# Получаем список пакетов один раз при запуске скрипта
installed_packages_info_desc = get_installed_packages_formatted_for_description()

def compute_projectile_distance(initial_speed, angle):
    """
    Calculate the horizontal distance traveled by a projectile.

    Parameters:
    initial_speed (float): Initial speed of the projectile in m/s
    angle (float): Launch angle in degrees

    Returns:
    float: Horizontal distance traveled in meters
    """
    
    # Convert angle from degrees to radians
    angle_rad = math.radians(angle)

    # Gravitational acceleration (m/s²)
    g = 9.81

    # Calculate the horizontal distance using the projectile motion formula:
    # distance = (initial_speed² * sin(2*angle)) / g
    distance = (initial_speed**2 * math.sin(2 * angle_rad)) / g
    return distance


app = gr.Interface(
    fn=compute_projectile_distance,
    inputs=["number", "number"],
    outputs="number",
    title="Compute Projectile Distance",
    description=("Computes the theoretical horizontal distance a projectile travels for a given initial speed and angle."
                 "for a given initial speed and angle."
                 f"{installed_packages_info_desc}" # Добавляем сюда информацию о пакетах
                )
)
#app.launch(mcp_server= True , share= True)
#app.launch(mcp_server=True, server_name="0.0.0.0")
app.launch(mcp_server=True)