振り子式車両の傾斜角度を計算するプログラムを作成する。
(工事中)
<?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(): File not found: "aj1.gif" at page "振り子式車両傾斜角度計算"