Help with making light fractals

Ok so I made a starterplayer LocalScript that when the player is inside a hitbox it makes light fractals of a part appear and the circle it fine but when you get from an angle this happens


I know why, because of the X,Y but I dont really know how to fix it or find another method
heres the main code block.

local function Make3Fractals(Part, Factor, Offset)
	spawn(function()
		local newFractal = Part:Clone()
		newFractal.Transparency = .2
		newFractal.Anchored = true
		newFractal.Parent = workspace
		newFractal.Name = "Fractal"
		table.insert(Fractals,newFractal)
		spawn(function()
			local x = 0
			while newFractal do
				x+=.1
				wait()
				newFractal.Size = Part.Size*1.2
				newFractal.CFrame = CFrame.lookAt(Part.Position, char.HumanoidRootPart.Position)+Vector3.new(math.sin(x),math.cos(x),0)*Factor
			end
		end)
	end)
end