Skip to main content
deleted 2 characters in body
Source Link

I can answer part of this old question, but not all of it because not enough information is given such as what properties are being used to measure the velocity and how it is being converted to Pi as a unit. For example, Rigidbody2D.angularVelocity is given in degrees per second and I can only assume that is being converted to radians, but that conversion is not shown. Show us more of the code and raw output.

Aside from that, torque is torque. It doesn't matter "how" it is being applied as long as it is applied at the expected value. Assuming the default units of kg, m, and s, a torque of Pi N-m could come from Pi kg at radius 1 m, or 1 kg at radius Pi m (both assuming perpendicular force), or any other set of factors that equates to Pi N-m of torque. If it does matter how the torque is applied then use a different method to apply it such as Rigidbody2D.AddForce(), Rigidbody2D.AddForceAtPosition() or Rigidbody2D.AddRelativeForce().

It makes sense that a smaller cylinder accelerates faster than a larger cylinder of the same mass, given the same torque (assuming, that is, you left them at the same mass). The larger cylinder would be less dense overall with more mass further away from center. A merry-go-round with children hanging on the outside edge is harder to accelerate than with the same children huddled near the center.

The problem I see here, however, is that you show an increase in rotational velocity of 16x (or 4x^2) when it should have been only 4x for half the diameterradius:

  • angular acceleration = Torque / (0.5 * mass * radius^2)

    • 1.0r cyl = Pi / (0.5 * 1 * 1.0^2) = 2Pi radians/s^2
    • 0.5r cyl = Pi / (0.5 * 1 * 0.5^2) = 8Pi radians/s^2
  • angular velocity = angular acceleration * time

    • 1.0r cyl = 2Pi radians/s^2 * 1s = 2Pi radians/s = 360 deg/s
    • 0.5r cyl = 8Pi radians/s^2 * 1s = 8Pi radians/s = 1440 deg/s

But it is not possible to guess where the fault lies (the engine or your code) without more information.

I can answer part of this old question, but not all of it because not enough information is given such as what properties are being used to measure the velocity and how it is being converted to Pi as a unit. For example, Rigidbody2D.angularVelocity is given in degrees per second and I can only assume that is being converted to radians, but that conversion is not shown. Show us more of the code and raw output.

Aside from that, torque is torque. It doesn't matter "how" it is being applied as long as it is applied at the expected value. Assuming the default units of kg, m, and s, a torque of Pi N-m could come from Pi kg at radius 1 m, or 1 kg at radius Pi m (both assuming perpendicular force), or any other set of factors that equates to Pi N-m of torque. If it does matter how the torque is applied then use a different method to apply it such as Rigidbody2D.AddForce(), Rigidbody2D.AddForceAtPosition() or Rigidbody2D.AddRelativeForce().

It makes sense that a smaller cylinder accelerates faster than a larger cylinder of the same mass, given the same torque (assuming, that is, you left them at the same mass). The larger cylinder would be less dense overall with more mass further away from center. A merry-go-round with children hanging on the outside edge is harder to accelerate than with the same children huddled near the center.

The problem I see here, however, is that you show an increase in rotational velocity of 16x (or 4x^2) when it should have been only 4x for half the diameter:

  • angular acceleration = Torque / (0.5 * mass * radius^2)

    • 1.0r cyl = Pi / (0.5 * 1 * 1.0^2) = 2Pi radians/s^2
    • 0.5r cyl = Pi / (0.5 * 1 * 0.5^2) = 8Pi radians/s^2
  • angular velocity = angular acceleration * time

    • 1.0r cyl = 2Pi radians/s^2 * 1s = 2Pi radians/s = 360 deg/s
    • 0.5r cyl = 8Pi radians/s^2 * 1s = 8Pi radians/s = 1440 deg/s

But it is not possible to guess where the fault lies (the engine or your code) without more information.

I can answer part of this old question, but not all of it because not enough information is given such as what properties are being used to measure the velocity and how it is being converted to Pi as a unit. For example, Rigidbody2D.angularVelocity is given in degrees per second and I can only assume that is being converted to radians, but that conversion is not shown. Show us more of the code and raw output.

Aside from that, torque is torque. It doesn't matter "how" it is being applied as long as it is applied at the expected value. Assuming the default units of kg, m, and s, a torque of Pi N-m could come from Pi kg at radius 1 m, or 1 kg at radius Pi m (both assuming perpendicular force), or any other set of factors that equates to Pi N-m of torque. If it does matter how the torque is applied then use a different method to apply it such as Rigidbody2D.AddForce(), Rigidbody2D.AddForceAtPosition() or Rigidbody2D.AddRelativeForce().

It makes sense that a smaller cylinder accelerates faster than a larger cylinder of the same mass, given the same torque (assuming, that is, you left them at the same mass). The larger cylinder would be less dense overall with more mass further away from center. A merry-go-round with children hanging on the outside edge is harder to accelerate than with the same children huddled near the center.

The problem I see here, however, is that you show an increase in rotational velocity of 16x (or 4x^2) when it should have been only 4x for half the radius:

  • angular acceleration = Torque / (0.5 * mass * radius^2)

    • 1.0r cyl = Pi / (0.5 * 1 * 1.0^2) = 2Pi radians/s^2
    • 0.5r cyl = Pi / (0.5 * 1 * 0.5^2) = 8Pi radians/s^2
  • angular velocity = angular acceleration * time

    • 1.0r cyl = 2Pi radians/s^2 * 1s = 2Pi radians/s = 360 deg/s
    • 0.5r cyl = 8Pi radians/s^2 * 1s = 8Pi radians/s = 1440 deg/s

But it is not possible to guess where the fault lies (the engine or your code) without more information.

Source Link

I can answer part of this old question, but not all of it because not enough information is given such as what properties are being used to measure the velocity and how it is being converted to Pi as a unit. For example, Rigidbody2D.angularVelocity is given in degrees per second and I can only assume that is being converted to radians, but that conversion is not shown. Show us more of the code and raw output.

Aside from that, torque is torque. It doesn't matter "how" it is being applied as long as it is applied at the expected value. Assuming the default units of kg, m, and s, a torque of Pi N-m could come from Pi kg at radius 1 m, or 1 kg at radius Pi m (both assuming perpendicular force), or any other set of factors that equates to Pi N-m of torque. If it does matter how the torque is applied then use a different method to apply it such as Rigidbody2D.AddForce(), Rigidbody2D.AddForceAtPosition() or Rigidbody2D.AddRelativeForce().

It makes sense that a smaller cylinder accelerates faster than a larger cylinder of the same mass, given the same torque (assuming, that is, you left them at the same mass). The larger cylinder would be less dense overall with more mass further away from center. A merry-go-round with children hanging on the outside edge is harder to accelerate than with the same children huddled near the center.

The problem I see here, however, is that you show an increase in rotational velocity of 16x (or 4x^2) when it should have been only 4x for half the diameter:

  • angular acceleration = Torque / (0.5 * mass * radius^2)

    • 1.0r cyl = Pi / (0.5 * 1 * 1.0^2) = 2Pi radians/s^2
    • 0.5r cyl = Pi / (0.5 * 1 * 0.5^2) = 8Pi radians/s^2
  • angular velocity = angular acceleration * time

    • 1.0r cyl = 2Pi radians/s^2 * 1s = 2Pi radians/s = 360 deg/s
    • 0.5r cyl = 8Pi radians/s^2 * 1s = 8Pi radians/s = 1440 deg/s

But it is not possible to guess where the fault lies (the engine or your code) without more information.