簡體   English   中英

jScience中的單位; 角速度的單位是多少?

[英]Units in jScience; Whats the unit of an angular velocity?

在我正在做的應用程序中,我需要一些物理計算(功率,力,轉矩等)。 我想使用JScience,因為它在跟蹤單位方面似乎非常有用。 例如,要分配速度,我可以這樣做:

Amount<Velocity> vel = Amount.valueOf(100, SI.METERS_PER_SECOND);

我的問題是我想在一個班級中分配一些角速度 ,但是我不能為應該如何做而費神。 假設我要指定100 rad / s的角速度。

Amount<AngularVelocity> angVel = Amount.valueOf(100, {SOME UNIT});

我在JScience中找不到用於角速度的任何單位。 文檔說“此數量的系統單位為“ rad / s”(每秒弧度)。”但是沒有“ SI.RAD_PER_SECOND”之類的值或我認為的任何枚舉值...

所以問題是:在后一個代碼示例中,我如何寫為{SOME UNIT}

來自伯傑的歡呼

- 編輯 -

有建議使用“ SI.RADIAN.divide(SI.SECOND)”作為單位,但隨后我必須將變量設置為其他類型。

// This will not compile, due to type mismatch
Amount<AngularVelocity> angVel = Amount.valueOf(100, SI.RADIAN.divide(SI.SECOND));

// This will compile, but I want to assign the amount as a AngularVelocity ...
Amount<?> angVel = Amount.valueOf(100, SI.RADIAN.divide(SI.SECOND));

// Another, working alternative. But, surely, there is a way to assign an angular velocity using rad/s ... ?
Amount<Frequency> angVel = Amount.valueOf(100 * Math.PI, SI.HERTZ);

我不是這個特定庫的專家,但是在eclipse中的一些快速測試使我想到了這一點:

Amount<AngularVelocity> angVel = Amount.valueOf(100, AngularVelocity.UNIT);

這樣做的問題是,如果AngularVelocity.UNIT更改,則您的數量也會更改。 但這不太可能。

否則,給出不太美觀的代碼行:

Amount<AngularVelocity> angVel = Amount.valueOf(100, SI.RADIAN.divide(SI.SECOND).asType(AngularVelocity.class));

這使我在使用Java進行編程時有一個很好的提示:使用控制空間。 很多。 我從來沒有使用過這個庫,但仍然可以通過快速查看AngularVelocity.UNIT版本的文檔來找到它。 另一個只是您自己的解決方案之后的控制空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM