 Separate sections within surface.DrawPoly

I’ve created a circle using surface.DrawPoly and I’m wanting to use this circle as a menu. I want the circle to be split into different sections and have those sections to be clickable and run a different function for each section though this is far beyond my knowledge so i was wondering if anyone would know how i could do this?

This is my script to create the circle:

function draw.Circle( x, y, radius, seg )
local cir = {}

table.insert( cir, { x = x, y = y, u = 0.5, v = 0.5 } )
for i = 0, seg do
local a = math.rad( ( i / seg ) * -360 )
table.insert( cir, { x = x + math.sin( a ) * radius, y = y + math.cos( a ) * radius, u = math.sin( a ) / 2 + 0.5, v = math.cos( a ) / 2 + 0.5 } )
end

local a = math.rad( 0 ) -- This is need for non absolute segment counts
table.insert( cir, { x = x + math.sin( a ) * radius, y = y + math.cos( a ) * radius, u = math.sin( a ) / 2 + 0.5, v = math.cos( a ) / 2 + 0.5 } )

surface.DrawPoly( cir )
end

if active == true then
surface.SetDrawColor(61, 61, 61, 255)
draw.NoTexture()
draw.Circle( ScrW() / 2, ScrH() / 2, 380, 20)
--Menu = surface.DrawCircle(ScrW() / 2, ScrH() / 2, 500, Color(61, 61, 61, 255))
end
end