mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-04 12:52:28 +08:00
feat: add AngleToRadian and RadianToAngle
This commit is contained in:
@@ -216,3 +216,17 @@ func RangeWithStep[T constraints.Integer | constraints.Float](start, end, step T
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AngleToRadian converts angle value to radian value.
|
||||||
|
// Play: todo
|
||||||
|
func AngleToRadian(angle float64) float64 {
|
||||||
|
radian := angle * (math.Pi / 180)
|
||||||
|
return radian
|
||||||
|
}
|
||||||
|
|
||||||
|
// RadianToAngle converts radian value to angle value.
|
||||||
|
// Play: todo
|
||||||
|
func RadianToAngle(radian float64) float64 {
|
||||||
|
angle := radian * (180 / math.Pi)
|
||||||
|
return angle
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package mathutil
|
package mathutil
|
||||||
|
|
||||||
import "fmt"
|
import (
|
||||||
|
"fmt"
|
||||||
|
"math"
|
||||||
|
)
|
||||||
|
|
||||||
func ExampleExponent() {
|
func ExampleExponent() {
|
||||||
result1 := Exponent(10, 0)
|
result1 := Exponent(10, 0)
|
||||||
@@ -221,3 +224,33 @@ func ExampleRangeWithStep() {
|
|||||||
// [-4 -2 0]
|
// [-4 -2 0]
|
||||||
// [1 2.1 3.2]
|
// [1 2.1 3.2]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ExampleAngleToRadian() {
|
||||||
|
result1 := AngleToRadian(45)
|
||||||
|
result2 := AngleToRadian(90)
|
||||||
|
result3 := AngleToRadian(180)
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 0.7853981633974483
|
||||||
|
// 1.5707963267948966
|
||||||
|
// 3.141592653589793
|
||||||
|
}
|
||||||
|
|
||||||
|
func ExampleRadianToAngle() {
|
||||||
|
result1 := RadianToAngle(math.Pi)
|
||||||
|
result2 := RadianToAngle(math.Pi / 2)
|
||||||
|
result3 := RadianToAngle(math.Pi / 4)
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// 180
|
||||||
|
// 90
|
||||||
|
// 45
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package mathutil
|
package mathutil
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/duke-git/lancet/v2/internal"
|
"github.com/duke-git/lancet/v2/internal"
|
||||||
@@ -139,7 +140,7 @@ func TestMinBy(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRange(t *testing.T) {
|
func TestRange(t *testing.T) {
|
||||||
assert := internal.NewAssert(t, "Range")
|
assert := internal.NewAssert(t, "TestRange")
|
||||||
|
|
||||||
result1 := Range(1, 4)
|
result1 := Range(1, 4)
|
||||||
result2 := Range(1, -4)
|
result2 := Range(1, -4)
|
||||||
@@ -155,7 +156,7 @@ func TestRange(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRangeWithStep(t *testing.T) {
|
func TestRangeWithStep(t *testing.T) {
|
||||||
assert := internal.NewAssert(t, "Range")
|
assert := internal.NewAssert(t, "TestRangeWithStep")
|
||||||
|
|
||||||
result1 := RangeWithStep(1, 4, 1)
|
result1 := RangeWithStep(1, 4, 1)
|
||||||
result2 := RangeWithStep(1, -1, 0)
|
result2 := RangeWithStep(1, -1, 0)
|
||||||
@@ -167,3 +168,27 @@ func TestRangeWithStep(t *testing.T) {
|
|||||||
assert.Equal([]int{-4, -2, 0}, result3)
|
assert.Equal([]int{-4, -2, 0}, result3)
|
||||||
assert.Equal([]float64{1.0, 2.1, 3.2}, result4)
|
assert.Equal([]float64{1.0, 2.1, 3.2}, result4)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAngleToRadian(t *testing.T) {
|
||||||
|
assert := internal.NewAssert(t, "TestAngleToRadian")
|
||||||
|
|
||||||
|
result1 := AngleToRadian(45)
|
||||||
|
result2 := AngleToRadian(90)
|
||||||
|
result3 := AngleToRadian(180)
|
||||||
|
|
||||||
|
assert.Equal(0.7853981633974483, result1)
|
||||||
|
assert.Equal(1.5707963267948966, result2)
|
||||||
|
assert.Equal(3.141592653589793, result3)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestRadianToAngle(t *testing.T) {
|
||||||
|
assert := internal.NewAssert(t, "TestAngleToRadian")
|
||||||
|
|
||||||
|
result1 := RadianToAngle(math.Pi)
|
||||||
|
result2 := RadianToAngle(math.Pi / 2)
|
||||||
|
result3 := RadianToAngle(math.Pi / 4)
|
||||||
|
|
||||||
|
assert.Equal(float64(180), result1)
|
||||||
|
assert.Equal(float64(90), result2)
|
||||||
|
assert.Equal(float64(45), result3)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user