mirror of
https://github.com/safishamsi/graphify.git
synced 2026-07-13 19:07:10 +00:00
7ff7bd2e8f
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
34 lines
461 B
Julia
34 lines
461 B
Julia
module Geometry
|
|
|
|
using LinearAlgebra
|
|
import Base: show
|
|
|
|
abstract type Shape end
|
|
|
|
struct Point <: Shape
|
|
x::Float64
|
|
y::Float64
|
|
end
|
|
|
|
mutable struct Circle <: Shape
|
|
center::Point
|
|
radius::Float64
|
|
end
|
|
|
|
function area(c::Circle)
|
|
return pi * c.radius^2
|
|
end
|
|
|
|
function distance(p1::Point, p2::Point)
|
|
return norm([p1.x - p2.x, p1.y - p2.y])
|
|
end
|
|
|
|
perimeter(c::Circle) = 2 * pi * c.radius
|
|
|
|
function describe(s::Shape)
|
|
show(s)
|
|
area(s)
|
|
end
|
|
|
|
end
|