Files
2026-04-08 22:54:18 +01:00

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