From 7ad27481fee7f914980e0914a8bec2344a27a1d0 Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Tue, 1 Dec 2020 19:27:30 +0100 Subject: [PATCH] can now create triangle from angle + side --- .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/6.6.1/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes src/main/kotlin/main.kt | 88 +++++++++++------- 4 files changed, 52 insertions(+), 36 deletions(-) diff --git a/.gradle/6.6.1/executionHistory/executionHistory.lock b/.gradle/6.6.1/executionHistory/executionHistory.lock index d07744dcec0d7b35d68252465d4a8dc26dc9c91a..7bc059eb5c76d10163175ba458dc929652bd3881 100644 GIT binary patch literal 17 UcmZR69({hYg68h?3=nVy06BgIPXGV_ literal 17 UcmZR69({hYg68h?3=q%<0691X2><{9 diff --git a/.gradle/6.6.1/fileHashes/fileHashes.lock b/.gradle/6.6.1/fileHashes/fileHashes.lock index 659dc80acb781c4722f40d5ff78e2f20438261ef..5f5a75fa3f70c66da9d006c2ecf8f3e3a89d1ad1 100644 GIT binary patch literal 17 VcmZR6FQ@-N0RS_z1X2J1 literal 17 UcmZR6FQ@-N71J`}p6uJt00Er<9vcGw literal 17 TcmZQ>71J`}p6uJt00Hp;9q|Ix diff --git a/src/main/kotlin/main.kt b/src/main/kotlin/main.kt index 2a40ad4..99cbf1b 100644 --- a/src/main/kotlin/main.kt +++ b/src/main/kotlin/main.kt @@ -3,10 +3,14 @@ import kotlin.math.* fun main() { val triangle = Triangle(4.0, 3.0, 5.0) - println("a: ${Triangle("alpha", 53.13, "a", 4.0)}") - println("b: ${Triangle("alpha", 53.13, "b", 3.0)}") - println("c: ${Triangle("alpha", 53.13, "c", 5.0)}") - println(triangle) + println("alpha: a: ${Triangle("alpha", 53.13, "a", 4.0)}") + println("alpha: b: ${Triangle("alpha", 53.13, "b", 3.0)}") + println("alpha: c: ${Triangle("alpha", 53.13, "c", 5.0)}") + + println("beta: a: ${Triangle("beta", 36.87, "a", 4.0)}") + println("beta: b: ${Triangle("beta", 36.87, "b", 3.0)}") + println("beta: c: ${Triangle("beta", 36.87, "c", 5.0)}") + println("\nOriginal$triangle") } class Triangle() { @@ -15,9 +19,9 @@ class Triangle() { var b = Side(0.0, "b") var c = Side(0.0, "c") - var alpha = Angle(0.0, "") - var beta = Angle(0.0, "") - var gamma = Angle(0.0, "") + var alpha = Angle(0.0, "alpha") + var beta = Angle(0.0, "beta") + var gamma = Angle(90.0, "gamma") init { @@ -25,39 +29,51 @@ class Triangle() { constructor(angleName: String, angleD: Double, sideName: String, side: Double) : this() { val angle = angleD.toRadians() //thanks kotlin - if (angleName == "alpha") { - alpha = Angle(angleD, "alpha") - when (sideName) { - "a" -> { - a = Side(side, "a"); - c = Side(a / sin(angle), "c") - b = Side(c * cos(angle), "b") + when (angleName) { + "alpha" -> { + alpha = Angle(angleD, "alpha") + when (sideName) { + "a" -> { + a = Side(side, "a"); + c = Side(a / sin(angle), "c") + b = Side(c * cos(angle), "b") + } + "b" -> { + b = Side(side, "b") + c = Side(b / cos(angle), "c") + a = Side(c * sin(angle), "a") + } + "c" -> { + c = Side(side, "c") + a = Side(c * sin(angle), "a") + b = Side(c * cos(angle), "a") + } } - "b" -> { - b = Side(side, "b") - c = Side(b / cos(angle), "c") - a = Side(c * sin(angle), "a") - } - "c" -> { - c = Side(side, "c") - a = Side(c * sin(angle), "a") - b = Side(c * cos(angle), "a") + beta = Angle(asin(b.length / c.length).toDegree(), "beta") + } + "beta" -> { + beta = Angle(angleD, "beta") + when (sideName) { + "a" -> { + a = Side(side, "a"); + c = Side(a / cos(angle), "c") + b = Side(c * sin(angle), "b") + } + "b" -> { + b = Side(side, "b") + c = Side(b / sin(angle), "c") + a = Side(c * cos(angle), "a") + } + "c" -> { + c = Side(side, "c") + a = Side(c * cos(angle), "a") + b = Side(c * sin(angle), "a") + } } } - } else if (angleName == "beta") { - when (sideName) { - "a" -> { - //cos - } - "b" -> { - //sin - } - "c" -> { - //cos - } + else -> { + throw IllegalArgumentException("$angleName is not a valid angle") } - } else { - throw IllegalArgumentException("$angleName is not a valid angle") } }