Corrida de corpos rolantes
A calculadora de corrida de corpos rolantes prevê quais sólidos rígidos chegam primeiro ao fim da mesma rampa quando rolam sem deslizar.
Executar grátis
Informe o ângulo da inclinação e o fator de inércia adimensional de cada corpo, k = I/(mr²). Você recebe a ordem física de chegada, a aceleração linear de cada participante e a indicação de empates exatos. Assim, pode comparar esferas, cilindros, aros ou distribuições de massa personalizadas sem informar massa, raio ou comprimento da rampa.
Monte uma corrida de rolamento justa
Uma comparação útil coloca todos os corpos na mesma rampa reta e pressupõe rolamento puro, sem deslizamento. Informe o ângulo da rampa medido a partir da horizontal e adicione uma linha para cada participante. Cada linha precisa de um nome exclusivo e de um fator de inércia k, definido como o momento de inércia em torno do eixo de rotação dividido pela massa vezes o raio ao quadrado: k = I/(mr²). Corpos ideais conhecidos têm fatores convenientes: uma esfera maciça tem 2/5, um cilindro ou disco maciço tem 1/2 e um aro fino tem 1. A calculadora não precisa das massas nem dos raios individuais, pois esses valores se cancelam na equação ideal. A gravidade padrão é a terrestre, mas você pode alterá-la para um experimento mental ou outro mundo. Todos os participantes devem compartilhar a mesma gravidade e inclinação. Perdas na superfície, resistência do ar, deformação, atrito no eixo e impulso inicial não fazem parte deste modelo ideal; mantenha condições consistentes ao comparar a previsão com uma corrida real.
Entenda a aceleração e a ordem de chegada
Quando um corpo rola sem deslizar, a energia potencial gravitacional é dividida entre a translação do centro de massa e a rotação em torno dele. A calculadora aplica a = g sin(θ)/(1 + k), em que g é a aceleração gravitacional, θ é o ângulo da rampa e k é o fator de inércia. Um k menor deixa uma parcela maior da energia disponível para o movimento de translação e produz mais aceleração linear. Por isso, uma esfera maciça ideal vence um cilindro maciço, que por sua vez vence um aro fino na mesma rampa. Os resultados são ordenados da maior aceleração para a menor. Fatores iguais recebem a mesma posição e são marcados como empate porque a equação ideal prevê acelerações idênticas; a ordem de entrada só é preservada para manter o JSON determinístico. A 0 graus, todas as acelerações são zero. A aceleração exibida é arredondada para nove casas decimais, enquanto a classificação usa os fatores originais.
Use o resultado com critério
A lista classificada responde a uma questão ideal de mecânica, e não a todos os detalhes de uma corrida em laboratório. Se os participantes partirem do repouso no mesmo ponto, percorrerem a mesma distância e tiverem aceleração constante, a ordem das acelerações também será a ordem de chegada. Portanto, o comprimento da rampa não é necessário para a classificação, embora seja necessário para calcular os tempos. Objetos reais podem divergir da previsão se deslizarem, oscilarem, quicarem, enfrentarem resistência ao rolamento ou sofrerem arrasto relevante. Antes de usar um fator tabelado, confirme se o eixo de rotação e o modelo de massa correspondem ao objeto: um cilindro de parede grossa não equivale a um aro fino. Um fator personalizado pode representar qualquer corpo rígido axissimétrico quando seu momento de inércia, massa e raio de rolamento são conhecidos. Para automação, a API custa US$ 0,002 por solicitação. O mesmo solucionador determinístico funciona no navegador para demonstrações, tarefas e planejamento experimental.
Casos de uso
Planeje uma demonstração em sala
Preveja a ordem de uma esfera, um cilindro e um aro antes de soltá-los juntos em uma única rampa.
Confira exercícios de mecânica
Verifique acelerações a partir de fatores de inércia adimensionais e observe como a rotação altera a translação.
Compare distribuições de massa próprias
Classifique rodas projetadas ou corpos axissimétricos depois de calcular o fator de momento de inércia de cada objeto.
Perguntas frequentes
Qual corpo rolante chega primeiro?
Sob as hipóteses informadas, o corpo com o menor fator de inércia chega primeiro porque tem a maior aceleração linear.
Por que massa e raio não são entradas?
Eles se cancelam quando o momento de inércia é escrito como I = kmr², deixando a aceleração dependente da gravidade, da inclinação e de k.
O que acontece quando dois corpos têm o mesmo fator de inércia?
Eles recebem a mesma posição e são marcados como empatados, pois o rolamento ideal prevê a mesma aceleração.
A calculadora considera deslizamento?
Não. Ela pressupõe atrito estático suficiente para rolar sem deslizar e não modela perda de energia nem resistência ao rolamento.
Posso usar um valor personalizado para a gravidade?
Sim. Informe qualquer aceleração gravitacional finita e positiva em metros por segundo ao quadrado; a gravidade terrestre padrão é o valor inicial.
Quanto custa uma solicitação de API?
Cada solicitação de API custa US$ 0,002. A calculadora no navegador está disponível para cálculos interativos.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"angle_degrees": 30,
"shapes": [
{
"name": "Solid sphere",
"inertia_factor": 0.4
},
{
"name": "Solid cylinder",
"inertia_factor": 0.5
},
{
"name": "Thin hoop",
"inertia_factor": 1
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "mech.rolling_race",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_shapes | 100 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |