comparison src/Grids/geometry.jl @ 1969:7f4a5146c84c feature/grids/geometry_functions

Add tests and better constructor for Circle
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 14 Feb 2025 08:23:00 +0100
parents 669361a8195a
children deeb61325320
comparison
equal deleted inserted replaced
1968:35cb503985b6 1969:7f4a5146c84c
62 function polygon_edges(ps...) 62 function polygon_edges(ps...)
63 n = length(ps) 63 n = length(ps)
64 return [LineSegment(ps[i], ps[mod1(i+1,n)]) for i ∈ eachindex(ps)] 64 return [LineSegment(ps[i], ps[mod1(i+1,n)]) for i ∈ eachindex(ps)]
65 end 65 end
66 66
67 struct Circle{T,PT} 67 struct Circle{PT,T}
68 c::PT 68 c::PT
69 r::T 69 r::T
70
71 Circle{PT,T}(c,r) where {PT,T} = new{PT,T}(c,r)
72 end
73
74 function Circle(c,r)
75 c = SVector{2}(c)
76 return Circle{typeof(c), typeof(r)}(c,r)
70 end 77 end
71 78
72 function (C::Circle)(θ) 79 function (C::Circle)(θ)
73 (;c, r) = C 80 (;c, r) = C
74 c + r*@SVector[cos(θ), sin(θ)] 81 c + r*@SVector[cos(θ), sin(θ)]