Course d’objets roulants
Le calculateur de course d’objets roulants prédit quels solides rigides atteignent en premier le bas d’un même plan incliné lorsqu’ils roulent sans glisser.
Lancer gratuitement
Indiquez l’angle de la pente et le facteur d’inertie sans dimension de chaque objet, k = I/(mr²). Vous obtenez l’ordre d’arrivée physique, l’accélération linéaire de chaque concurrent et les éventuelles égalités exactes. Vous pouvez ainsi comparer sphères, cylindres, anneaux ou répartitions de masse personnalisées sans fournir la masse, le rayon ni la longueur de la rampe.
Préparez une course équitable
Pour une comparaison pertinente, placez tous les objets sur le même plan incliné rectiligne et supposez un roulement pur sans glissement. Saisissez l’angle de la rampe mesuré depuis l’horizontale, puis ajoutez une ligne par concurrent. Chaque ligne exige un nom unique et un facteur d’inertie k, défini comme le moment d’inertie autour de l’axe de rotation divisé par la masse multipliée par le carré du rayon : k = I/(mr²). Des solides idéaux courants ont des facteurs connus : une sphère pleine vaut 2/5, un cylindre ou disque plein 1/2 et un anneau mince 1. Les masses et rayons individuels sont inutiles, car ils s’éliminent dans l’équation idéale. La gravité terrestre standard est proposée par défaut, mais vous pouvez la modifier pour une expérience de pensée ou un autre monde. Tous les concurrents doivent subir la même gravité et la même pente. Les pertes de surface, la traînée, la déformation, le frottement d’un axe et une poussée initiale sortent du modèle ; conservez des conditions expérimentales cohérentes pour confronter calcul et réalité.
Interprétez l’accélération et le classement
Lorsqu’un corps roule sans glisser, son énergie potentielle gravitationnelle se partage entre la translation du centre de masse et la rotation autour de ce centre. Le calculateur applique a = g sin(θ)/(1 + k), où g désigne l’accélération gravitationnelle, θ l’angle du plan et k le facteur d’inertie. Un k plus faible laisse davantage d’énergie au mouvement de translation et produit une accélération linéaire supérieure. Ainsi, sur la même pente, une sphère pleine idéale devance un cylindre plein, lui-même devant un anneau mince. Les résultats vont de l’accélération la plus forte à la plus faible. Des facteurs égaux obtiennent le même rang et sont signalés ex æquo, car l’équation idéale prévoit des accélérations identiques ; l’ordre de saisie ne sert qu’à rendre le JSON déterministe. À 0 degré, toutes les accélérations sont nulles. L’affichage est arrondi à neuf décimales, tandis que le classement repose sur les facteurs d’origine.
Employez le résultat à bon escient
La liste classée répond à une question de mécanique idéale, pas à tous les détails d’une course en laboratoire. Si les objets partent du repos au même endroit, parcourent la même distance et gardent une accélération constante, l’ordre des accélérations est aussi l’ordre d’arrivée. La longueur de la rampe est donc inutile pour le classement, mais elle serait nécessaire pour calculer les temps. Des objets réels peuvent démentir la prévision s’ils glissent, oscillent, rebondissent, rencontrent une résistance au roulement ou subissent une traînée notable. Avant d’utiliser un facteur tabulé, vérifiez que l’axe de rotation et le modèle de masse correspondent à l’objet : un cylindre à paroi épaisse n’est pas un anneau mince. Un facteur personnalisé représente tout corps rigide axisymétrique dont le moment d’inertie, la masse et le rayon de roulement sont connus. Pour l’automatisation, l’API coûte $0.002 par requête. Le même solveur déterministe fonctionne dans le navigateur pour les démonstrations, devoirs et préparations d’expériences.
Cas d’usage
Préparer une démonstration en classe
Prévoyez l’ordre d’une sphère, d’un cylindre et d’un anneau avant de les lâcher ensemble sur une même rampe.
Vérifier un exercice de mécanique
Contrôlez les accélérations à partir de facteurs d’inertie sans dimension et observez l’effet de la rotation sur la translation.
Comparer vos répartitions de masse
Classez des roues conçues sur mesure ou des corps axisymétriques après avoir calculé leur facteur de moment d’inertie.
Questions fréquentes
Quel objet roulant arrive en premier ?
Avec les hypothèses indiquées, l’objet au plus petit facteur d’inertie arrive en tête, car son accélération linéaire est la plus forte.
Pourquoi la masse et le rayon ne sont-ils pas demandés ?
Ils s’éliminent lorsque le moment d’inertie s’écrit I = kmr² ; l’accélération ne dépend plus que de la gravité, de la pente et de k.
Que se passe-t-il si deux objets ont le même facteur d’inertie ?
Ils obtiennent le même rang et sont signalés ex æquo, puisque le roulement idéal prévoit la même accélération.
Le calculateur tient-il compte du glissement ?
Non. Il suppose un frottement statique suffisant pour rouler sans glisser et ne modélise ni perte d’énergie ni résistance au roulement.
Puis-je choisir une autre valeur de gravité ?
Oui. Indiquez toute accélération gravitationnelle finie et positive en mètres par seconde carrée ; la gravité terrestre standard est proposée par défaut.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. Le calculateur dans le navigateur reste disponible pour les calculs interactifs.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/mech/rolling-race \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"angle_degrees":30,"shapes":[{"name":"Solid sphere","inertia_factor":0.4},{"name":"Solid cylinder","inertia_factor":0.5},{"name":"Thin hoop","inertia_factor":1}]}'const res = await fetch("https://api.kit.forhosting.com/mech/rolling-race", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"angle_degrees": 30,
"shapes": [
{
"name": "Solid sphere",
"inertia_factor": 0.4
},
{
"name": "Solid cylinder",
"inertia_factor": 0.5
},
{
"name": "Thin hoop",
"inertia_factor": 1
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/mech/rolling-race",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"angle_degrees": 30,
"shapes": [
{
"name": "Solid sphere",
"inertia_factor": 0.4
},
{
"name": "Solid cylinder",
"inertia_factor": 0.5
},
{
"name": "Thin hoop",
"inertia_factor": 1
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/mech/rolling-race", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"angle_degrees":30,"shapes":[{"name":"Solid sphere","inertia_factor":0.4},{"name":"Solid cylinder","inertia_factor":0.5},{"name":"Thin hoop","inertia_factor":1}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"angle_degrees":30,"shapes":[{"name":"Solid sphere","inertia_factor":0.4},{"name":"Solid cylinder","inertia_factor":0.5},{"name":"Thin hoop","inertia_factor":1}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/mech/rolling-race", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"angle_degrees": 30,
"shapes": [
{
"name": "Solid sphere",
"inertia_factor": 0.4
},
{
"name": "Solid cylinder",
"inertia_factor": 0.5
},
{
"name": "Thin hoop",
"inertia_factor": 1
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.rolling_race",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_shapes | 100 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |