mirror of
https://github.com/Noratrieb/TriangleCalculator.git
synced 2026-01-14 16:45:02 +01:00
more angle and side options
This commit is contained in:
parent
defbacb8c7
commit
1977b1e43d
4 changed files with 19 additions and 7 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,9 +1,11 @@
|
||||||
import java.lang.IllegalArgumentException
|
import java.lang.IllegalArgumentException
|
||||||
import kotlin.contracts.contract
|
|
||||||
import kotlin.math.*
|
import kotlin.math.*
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
val triangle = Triangle(7.7, 4.3, 8.7)
|
val triangle = Triangle(4.0, 3.0, 5.0)
|
||||||
|
println("a: ${Triangle("alpha", 54.13, "a", 4.0)}")
|
||||||
|
println("b: ${Triangle("alpha", 54.13, "b", 3.0)}")
|
||||||
|
println("c: ${Triangle("alpha", 54.13, "c", 5.0)}")
|
||||||
println(triangle)
|
println(triangle)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -21,18 +23,25 @@ class Triangle() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(angleName: String, angle: Double, sideName: String, side: Double) : this() {
|
constructor(angleName: String, angleD: Double, sideName: String, side: Double) : this() {
|
||||||
|
val angle = angleD.toRadians() //thanks kotlin
|
||||||
if (angleName == "alpha") {
|
if (angleName == "alpha") {
|
||||||
|
alpha = Angle(angleD, "alpha")
|
||||||
when(sideName){
|
when(sideName){
|
||||||
"a" -> {
|
"a" -> {
|
||||||
c = Side(side / sin(angle), "c")
|
a = Side(side, "a");
|
||||||
|
c = Side(a / sin(angle), "c")
|
||||||
b = Side(c * cos(angle), "b")
|
b = Side(c * cos(angle), "b")
|
||||||
}
|
}
|
||||||
"b" -> {
|
"b" -> {
|
||||||
//c = Side
|
b = Side(side, "b")
|
||||||
|
c = Side(side / cos(angle), "c")
|
||||||
|
a = Side(c * cos(angle), "c")
|
||||||
|
TODO("fix error on side c (also wrong name")
|
||||||
}
|
}
|
||||||
"c" -> {
|
"c" -> {
|
||||||
//cos
|
c = Side(side, "c")
|
||||||
|
a = Side(c * sin(angle), "a")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (angleName == "beta") {
|
} else if (angleName == "beta") {
|
||||||
|
|
@ -67,6 +76,8 @@ class Triangle() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Double.toDegree() = this * 180 / PI
|
private fun Double.toDegree() = this * 180 / PI
|
||||||
|
private fun Double.toRadians() = this * PI / 180
|
||||||
|
|
||||||
|
|
||||||
override fun toString(): String {
|
override fun toString(): String {
|
||||||
return "Seiten: $a, $b, $c Winkel: $alpha $beta $gamma"
|
return "Seiten: $a, $b, $c Winkel: $alpha $beta $gamma"
|
||||||
|
|
@ -79,9 +90,10 @@ class Side(length: Double, name: String) {
|
||||||
val name = name
|
val name = name
|
||||||
|
|
||||||
operator fun times(other: Double) = this.length * other
|
operator fun times(other: Double) = this.length * other
|
||||||
|
operator fun div(other: Double) = this.length / other
|
||||||
|
|
||||||
override fun toString(): String {
|
override fun toString(): String {
|
||||||
return "$name = $length"
|
return "$name = ${"%.2f".format(length)}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue