*振り子式車両傾斜角度計算 [#o84ff4a7]
振り子式車両の傾斜角度を計算するプログラムを作成する。~
(工事中)~
>
 <?xml version='1.0' encoding='UTF-8' ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 <html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    <h:head>
        <title>振り子式車両傾斜角度計算</title>
    </h:head>
    <h:body>
        <h:form>
            振り子式車両傾斜角度計算<br/>
            <h:outputLabel value="軌間(mm)">
                <h:inputText value="#{furico.gauge}"/>
            </h:outputLabel>
            <br/>
            <h:outputLabel value="カント(mm)">
                <h:inputText value="#{furico.cant}"/>
            </h:outputLabel>
            <br/>
            <h:outputLabel value="カーブ半径(m)">
                <h:inputText value="#{furico.radius}"/>
            </h:outputLabel>
            <br/>
            <h:outputLabel value="速度(km/h)">
                <h:inputText value="#{furico.velocity}"/>
            </h:outputLabel>
            <br/>
            <h:commandButton value="計算" action="#{furico.calculateTilt()}">
                <f:ajax execute="@form" render="@form"/>
            </h:commandButton>
            <br/>
            <h:outputLabel value="角度">
                <h:outputText value="#{furico.tilt}"/>
            </h:outputLabel>
        </h:form>
    </h:body>
 </html>

~
>
 import javax.annotation.PostConstruct;
 import javax.inject.Named;
 import javax.enterprise.context.RequestScoped;
 @Named(value = "furico")
 @RequestScoped
 public class Furico {
    private double gauge = 1067;
    private double cant = 105;
    private double radius = 400;
    private double velocity = 100;
    private double tilt;
    private static final double GRAVITATIONAL_ACCELERATION = 9.8;
    public Furico() {
    }
    @PostConstruct
    private void init() {
        calculateTilt();
    }
    // getter/setter省略
    public void calculateTilt() {
        double v = velocity / 3.6;
        double a = v * v / radius;
        double t = Math.atan2(a, GRAVITATIONAL_ACCELERATION) - Math.atan2(cant, gauge);
        tilt = Math.max(Math.toDegrees(t), 0);
    }
 }

~
Ajaxを使用したため、書き込み時にページが変わっていない。~
#ref(aj1.gif)~
*コメント [#g8c2cc11]
#comment

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS