blob: ef5a3cc2f41a0f69709c9c2aa3a8b004e6ca74b8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package vfd.dashboard.ui.instruments
import org.scalajs.dom.html
import vfd.dashboard.Environment
class Balance(implicit env: Environment) extends SvgInstrument[(Double, Double, Double, Double)] {
import SvgInstrument._
val initial = (0.0, 0.0, 0.0, 0.0)
lazy val element = svgObject("balance")
lazy val position = part("position")
lazy val moveable = Seq(position)
protected def update(value: (Double, Double, Double, Double)) = {
val m0 = value._1
val m1 = value._2
val m2 = value._3
val m3 = value._4
val s = m0 + m1 + m2 + m3
val i = (m0 - m2) / s
val j = (m1 - m3) / s
val x = 0.5 * (i - j)
val y = 0.5 * (-i - j)
translate(position, (x * 50).toInt, (y * 50).toInt)
}
}
|