cycloid
This commit is contained in:
commit
7dbd048322
1 changed files with 69 additions and 0 deletions
69
main.go
Normal file
69
main.go
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"math"
|
||||||
|
|
||||||
|
rl "github.com/gen2brain/raylib-go/raylib"
|
||||||
|
)
|
||||||
|
|
||||||
|
const HEIGHT = 600
|
||||||
|
const WIDTH = 800
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
fmt.Println("hello world")
|
||||||
|
rl.SetConfigFlags(rl.FlagMsaa4xHint)
|
||||||
|
rl.InitWindow(WIDTH, HEIGHT, "raylib [core] example - basic window")
|
||||||
|
defer rl.CloseWindow()
|
||||||
|
// rl.SetTargetFPS(60)
|
||||||
|
|
||||||
|
rl.BeginDrawing()
|
||||||
|
rl.ClearBackground(rl.RayWhite)
|
||||||
|
rl.EndDrawing()
|
||||||
|
|
||||||
|
var innerCircleRadius float32 = HEIGHT/2
|
||||||
|
var outerCircleRadius float32 = innerCircleRadius/2
|
||||||
|
trace := true
|
||||||
|
|
||||||
|
for !rl.WindowShouldClose() {
|
||||||
|
rl.BeginDrawing()
|
||||||
|
if !trace {
|
||||||
|
rl.ClearBackground(rl.RayWhite)
|
||||||
|
}
|
||||||
|
|
||||||
|
if rl.IsKeyPressed(rl.KeySpace) {
|
||||||
|
trace = !trace
|
||||||
|
}
|
||||||
|
|
||||||
|
angle := float64(rl.GetTime() * 1)
|
||||||
|
center := rl.NewVector2(WIDTH/2, HEIGHT/2)
|
||||||
|
outerCircle := rl.NewVector2(float32(math.Cos(angle)), float32(math.Sin(angle)))
|
||||||
|
outerCircle = rl.Vector2Scale(outerCircle, innerCircleRadius - outerCircleRadius)
|
||||||
|
outerCircle = rl.Vector2Add(outerCircle, center)
|
||||||
|
|
||||||
|
if !trace {
|
||||||
|
// outer circle
|
||||||
|
rl.DrawCircleV(outerCircle, outerCircleRadius, rl.Black)
|
||||||
|
rl.DrawCircleV(outerCircle, outerCircleRadius-1, rl.RayWhite)
|
||||||
|
rl.DrawLineV(outerCircle, center, rl.Black)
|
||||||
|
}
|
||||||
|
|
||||||
|
var tipSize float32 = 6
|
||||||
|
if trace {
|
||||||
|
tipSize = 2
|
||||||
|
}
|
||||||
|
// tip
|
||||||
|
angle *= -7.3
|
||||||
|
tip := rl.NewVector2(float32(math.Cos(angle)), float32(math.Sin(angle)))
|
||||||
|
tip = rl.Vector2Scale(tip, outerCircleRadius)
|
||||||
|
tip = rl.Vector2Add(tip, outerCircle)
|
||||||
|
rl.DrawCircleV(tip, tipSize, rl.Blue)
|
||||||
|
|
||||||
|
if !trace {
|
||||||
|
// inner circle
|
||||||
|
rl.DrawCircleLines(WIDTH/2, HEIGHT/2, innerCircleRadius, rl.Black)
|
||||||
|
}
|
||||||
|
|
||||||
|
rl.EndDrawing()
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue