一、三角形咱們假設現在已經找到了這麼一個點D,它到三角形三個頂點A,B,C的距離的最小值最大,假設它到三個頂點的距離是a,b,c,那麼這三個值一定至少有兩個是相等的。原因是,如果這三個值兩兩不同,比如說a<b<c,那麼我們總可以找到一個方向,把D朝那個方向移動一點點,使得新的點E到第一個頂點的距離變大一點點,比如從a變到a+u,同時到第二個頂點的距離變小一點點,比如從b變到b-v,並且a+u<b-v。c也在變,但是幅度很小,因此所求值就從a增大到了a+u。這和點D的假設矛盾。因此,所求的點一定在某兩個頂點的垂直平分線上。如果咱們隨機生成一些三角形,把距離大小用顏色亮暗來表示,就可以看得更加清楚。因為所要求的點是在多邊形內部,那麼只有兩種情況:1. 它是兩條垂直平分線的交點(上圖1)。2. 它是某條垂直平分線和某條邊的交點(上圖2和圖3),因此不是在內部,而是在邊界上。如果把範圍精確到多邊形內部(不包括邊界),就不存在最大值了,類似於開區間(0,1)內沒有最大值。二、多邊形對於多邊形的情況,因為構成它的任意三個頂點可以做出一個三角形,可以構造下面這種解法:1. 找到任意兩頂點的垂直平分線,找到過任意兩個頂點的直線,把這兩種直線攢起來。2. 計算上面直線集合中任意兩個條直線的交點,去掉在多邊形外部的點。3. 對剩下的交點,逐一計算它們到多邊形各頂點的距離的最小值,最小值最大的那個交點就是答案。下面是一些隨機生成的圖示,可以參考一下。
一、三角形咱們假設現在已經找到了這麼一個點D,它到三角形三個頂點A,B,C的距離的最小值最大,假設它到三個頂點的距離是a,b,c,那麼這三個值一定至少有兩個是相等的。原因是,如果這三個值兩兩不同,比如說a<b<c,那麼我們總可以找到一個方向,把D朝那個方向移動一點點,使得新的點E到第一個頂點的距離變大一點點,比如從a變到a+u,同時到第二個頂點的距離變小一點點,比如從b變到b-v,並且a+u<b-v。c也在變,但是幅度很小,因此所求值就從a增大到了a+u。這和點D的假設矛盾。因此,所求的點一定在某兩個頂點的垂直平分線上。如果咱們隨機生成一些三角形,把距離大小用顏色亮暗來表示,就可以看得更加清楚。因為所要求的點是在多邊形內部,那麼只有兩種情況:1. 它是兩條垂直平分線的交點(上圖1)。2. 它是某條垂直平分線和某條邊的交點(上圖2和圖3),因此不是在內部,而是在邊界上。如果把範圍精確到多邊形內部(不包括邊界),就不存在最大值了,類似於開區間(0,1)內沒有最大值。二、多邊形對於多邊形的情況,因為構成它的任意三個頂點可以做出一個三角形,可以構造下面這種解法:1. 找到任意兩頂點的垂直平分線,找到過任意兩個頂點的直線,把這兩種直線攢起來。2. 計算上面直線集合中任意兩個條直線的交點,去掉在多邊形外部的點。3. 對剩下的交點,逐一計算它們到多邊形各頂點的距離的最小值,最小值最大的那個交點就是答案。下面是一些隨機生成的圖示,可以參考一下。