理了一下思路，加入了点函数