国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      曲線繪制方法和系統(tǒng)的制作方法

      文檔序號(hào):10657016閱讀:230來(lái)源:國(guó)知局
      曲線繪制方法和系統(tǒng)的制作方法
      【專利摘要】本發(fā)明涉及一種曲線繪制方法和系統(tǒng),獲取用戶連續(xù)輸入的第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo);選取第一繪制點(diǎn)和第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取兩個(gè)參考點(diǎn)的坐標(biāo)。查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo);提取兩個(gè)參考點(diǎn)的坐標(biāo)中靠近第一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),提取另一參考點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo)。根據(jù)起始點(diǎn)的坐標(biāo)、起始控制點(diǎn)的坐標(biāo)、終結(jié)控制點(diǎn)的坐標(biāo)和終結(jié)點(diǎn)的坐標(biāo)進(jìn)行貝塞爾曲線繪制,得到本次繪制的曲線段。終結(jié)點(diǎn)與繪制點(diǎn)之間的部分在下一次曲線繪制時(shí)完成,下一段曲線通過(guò)上一個(gè)繪制點(diǎn)調(diào)整曲線的角度,使得多條曲線的連接處光滑無(wú)鋸齒,提高了曲線的平滑度。
      【專利說(shuō)明】
      曲線繪制方法和系統(tǒng)
      技術(shù)領(lǐng)域
      [0001]本發(fā)明涉及圖像繪制技術(shù)領(lǐng)域,特別是涉及一種曲線繪制方法和系統(tǒng)?!颈尘凹夹g(shù)】
      [0002]在圖像和視頻處理的軟件中通常都會(huì)帶有繪制功能,用戶可以根據(jù)自己的需求移動(dòng)鼠標(biāo)進(jìn)行點(diǎn)的繪制,計(jì)算機(jī)根據(jù)各點(diǎn)進(jìn)行圖像繪制。
      [0003]傳統(tǒng)的曲線繪制方法是收到鼠標(biāo)點(diǎn)擊的消息后,記錄下來(lái)點(diǎn)擊坐標(biāo),然后獲取到鼠標(biāo)移動(dòng)過(guò)程的坐標(biāo),收到第二個(gè)坐標(biāo)的時(shí)候在前后兩個(gè)點(diǎn)間畫出直線。當(dāng)收到第三個(gè)點(diǎn)的坐標(biāo)使用第二個(gè)和第三個(gè)點(diǎn)的坐標(biāo)畫直線,由各小段不同方向的線段組合成曲線。由于畫出的曲線銜接處轉(zhuǎn)折太明顯,當(dāng)作為一條長(zhǎng)曲線看時(shí)有明顯的鋸齒,傳統(tǒng)的曲線繪制方法存在繪制的曲線平滑度低的缺點(diǎn)。
      【發(fā)明內(nèi)容】

      [0004]基于此,有必要針對(duì)上述問(wèn)題,提供一種曲線平滑度高的曲線繪制方法和系統(tǒng)。
      [0005]—種曲線繪制方法,包括以下步驟:
      [0006]獲取用戶連續(xù)輸入的第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo);
      [0007]選取所述第一繪制點(diǎn)和所述第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取所述兩個(gè)參考點(diǎn)的坐標(biāo);
      [0008]查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將所述第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo);
      [0009]提取所述兩個(gè)參考點(diǎn)的坐標(biāo)中靠近所述第一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),提取另一參考點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo);
      [0010]根據(jù)所述起始點(diǎn)的坐標(biāo)、所述起始控制點(diǎn)的坐標(biāo)、所述終結(jié)控制點(diǎn)的坐標(biāo)和所述終結(jié)點(diǎn)的坐標(biāo)進(jìn)行貝塞爾曲線繪制,得到本次繪制的曲線段。
      [0011]—種曲線繪制系統(tǒng),包括:
      [0012]繪制點(diǎn)獲取模塊,用于獲取用戶連續(xù)輸入的第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo);
      [0013]參考點(diǎn)獲取模塊,用于選取所述第一繪制點(diǎn)和所述第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取所述兩個(gè)參考點(diǎn)的坐標(biāo);
      [0014]起始坐標(biāo)獲取模塊,用于查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將所述第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo);
      [0015]終點(diǎn)坐標(biāo)獲取模塊,用于提取所述兩個(gè)參考點(diǎn)的坐標(biāo)中靠近所述第一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),提取另一參考點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo);
      [0016]曲線繪制模塊,用于根據(jù)所述起始點(diǎn)的坐標(biāo)、所述起始控制點(diǎn)的坐標(biāo)、所述終結(jié)控制點(diǎn)的坐標(biāo)和所述終結(jié)點(diǎn)的坐標(biāo)進(jìn)行貝塞爾曲線繪制,得到本次繪制的曲線段。
      [0017]上述曲線繪制方法和系統(tǒng),獲取用戶連續(xù)輸入的第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo);選取第一繪制點(diǎn)和第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取兩個(gè)參考點(diǎn)的坐標(biāo)。查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo);提取兩個(gè)參考點(diǎn)的坐標(biāo)中靠近第一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),提取另一參考點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo)。根據(jù)起始點(diǎn)的坐標(biāo)、起始控制點(diǎn)的坐標(biāo)、終結(jié)控制點(diǎn)的坐標(biāo)和終結(jié)點(diǎn)的坐標(biāo)進(jìn)行貝塞爾曲線繪制,得到本次繪制的曲線段。使用貝塞爾曲線來(lái)連接坐標(biāo)點(diǎn),在進(jìn)行曲線繪制時(shí)每次只繪制一部分,終結(jié)點(diǎn)與繪制點(diǎn)之間的部分在下一次曲線繪制時(shí)完成。由于下一段曲線通過(guò)上一個(gè)繪制點(diǎn)調(diào)整曲線的角度,使得多條曲線的連接處光滑無(wú)鋸齒,提高了曲線的平滑度?!靖綀D說(shuō)明】
      [0018]圖1為一實(shí)施例中曲線繪制方法的流程圖;
      [0019]圖2為另一實(shí)施例中曲線繪制方法的流程圖;
      [0020]圖3為一實(shí)施例中曲線繪制系統(tǒng)的結(jié)構(gòu)圖;
      [0021]圖4為另一實(shí)施例中曲線繪制系統(tǒng)的結(jié)構(gòu)圖?!揪唧w實(shí)施方式】
      [0022]—種曲線繪制方法,如圖1所示,包括以下步驟:
      [0023]步驟S110:獲取用戶連續(xù)輸入的第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo)。接收用戶輸入的繪制點(diǎn),并獲取連續(xù)輸入的第一繪制點(diǎn)和第二繪制的坐標(biāo)。第一繪制點(diǎn)和第二繪制點(diǎn)是用戶連續(xù)輸入的兩個(gè)繪制點(diǎn),可以理解,在進(jìn)行曲線繪制時(shí),隨著用戶不斷輸入繪制點(diǎn),第一繪制點(diǎn)和第二繪制點(diǎn)具體所指的點(diǎn)也會(huì)隨之發(fā)生變化。也就是說(shuō)第一繪制點(diǎn)和第二繪制點(diǎn)僅用于區(qū)分不同的點(diǎn),并沒(méi)有限定具體位置。例如在上一次繪制曲線時(shí),則第一繪制點(diǎn)是上一次繪制時(shí)的第二繪制點(diǎn)。
      [0024]用戶具體可通過(guò)點(diǎn)擊或拖動(dòng)鼠標(biāo)來(lái)輸入繪制點(diǎn),也可以是通過(guò)觸控筆、手指等點(diǎn)擊或滑動(dòng)觸控屏來(lái)進(jìn)行繪制點(diǎn)的輸入,即用戶輸入繪制點(diǎn)的方式并不唯一。本實(shí)施例中第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo)為用戶點(diǎn)擊的位置坐標(biāo),或用戶操作所產(chǎn)生的運(yùn)動(dòng)軌跡的起點(diǎn)和終點(diǎn)的坐標(biāo),例如,當(dāng)?shù)谝淮卫L制曲線段時(shí),將鼠標(biāo)點(diǎn)擊的位置作為第一繪制點(diǎn),然后獲取到鼠標(biāo)移動(dòng)結(jié)束后點(diǎn)擊的坐標(biāo),作為第二繪制點(diǎn)的坐標(biāo)。而在后續(xù)的曲線段繪制過(guò)程中,可直接將用戶拖動(dòng)鼠標(biāo)時(shí)在屏幕產(chǎn)生的運(yùn)動(dòng)軌跡的起點(diǎn)和終點(diǎn)分別作為第一繪制點(diǎn)和第二繪制點(diǎn)。[〇〇25]步驟S120:選取第一繪制點(diǎn)和第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取兩個(gè)參考點(diǎn)的坐標(biāo)。在確定第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo)后,可對(duì)兩者進(jìn)行虛擬連線,選取連線上的兩個(gè)點(diǎn)作為參考點(diǎn)并進(jìn)行坐標(biāo)提取。
      [0026]參考點(diǎn)在連線上的位置可根據(jù)實(shí)際情況調(diào)節(jié),本實(shí)施例中步驟S120具體包括:獲取第一繪制點(diǎn)和第二繪制點(diǎn)之間距離的三等分點(diǎn)作為參考點(diǎn),并獲取兩個(gè)參考點(diǎn)的坐標(biāo)。 對(duì)第一繪制點(diǎn)和第二繪制點(diǎn)之間的距離三等分,得到中間的兩個(gè)坐標(biāo)作為兩個(gè)參考點(diǎn)的坐標(biāo),便于坐標(biāo)計(jì)算和提取,且在后續(xù)的曲線繪制時(shí)只畫出2/3的曲線,剩余1/3的距離用作對(duì)下一段曲線進(jìn)行曲線角度的調(diào)整,使得各曲線段的連接處光滑過(guò)度。[〇〇27]步驟S150:查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo)。
      [0028]上一次繪制的曲線段是指在同一次曲線繪制中的上一曲線段,可將鼠標(biāo)停止點(diǎn)擊或移動(dòng)作為繪制停止指令,兩次繪制停止指令之間用戶連續(xù)點(diǎn)擊鼠標(biāo)或移動(dòng)鼠標(biāo)的動(dòng)作作為同一次曲線繪制。曲線段的終點(diǎn)坐標(biāo)即指在一次曲線段繪制完成后,該曲線段的繪制終點(diǎn)的坐標(biāo)。以同一次曲線繪制中的第一個(gè)曲線段為基礎(chǔ),每次確定兩個(gè)連續(xù)的繪制點(diǎn)以及繪制點(diǎn)之間的參考點(diǎn)之后,找到上一次曲線繪制時(shí)得到的曲線段,并獲取曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo),用作后續(xù)進(jìn)行曲線繪制。[〇〇29]步驟S160:提取兩個(gè)參考點(diǎn)的坐標(biāo)中靠近第一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),提取另一參考點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo)。在得到兩個(gè)繪制點(diǎn)之間的參考點(diǎn)的坐標(biāo)之后,將靠近前一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),靠近后一繪制點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo),用作后續(xù)進(jìn)行曲線繪制。
      [0030]步驟S170:根據(jù)起始點(diǎn)的坐標(biāo)、起始控制點(diǎn)的坐標(biāo)、終結(jié)控制點(diǎn)的坐標(biāo)和終結(jié)點(diǎn)的坐標(biāo)進(jìn)行貝塞爾曲線繪制,得到本次繪制的曲線段。根據(jù)前面步驟確定的起始點(diǎn)的坐標(biāo)、起始控制點(diǎn)的坐標(biāo)、終結(jié)控制點(diǎn)的坐標(biāo)和終結(jié)點(diǎn)的坐標(biāo)進(jìn)行貝塞爾曲線繪制,即可完成本次的曲線段繪制。起始點(diǎn)和終結(jié)點(diǎn)分別為曲線段的繪制起點(diǎn)和繪制終點(diǎn),起始控制點(diǎn)和終結(jié)控制點(diǎn)為繪制曲線段時(shí)的控制節(jié)點(diǎn),用于提供方向資訊,在由起始點(diǎn)到終結(jié)點(diǎn)繪制曲線段的過(guò)程中牽制曲線形狀路徑。
      [0031]貝塞爾曲線繪制是依據(jù)四個(gè)位置任意的點(diǎn)坐標(biāo)繪制出的一條光滑曲線,使用貝塞爾曲線公式畫曲線來(lái)消除鋸齒。曲線起于起始點(diǎn)走向起始控制點(diǎn),并從終結(jié)控制點(diǎn)的方向來(lái)到終結(jié)點(diǎn),一般不會(huì)經(jīng)過(guò)起始控制點(diǎn)和終結(jié)控制點(diǎn),這兩個(gè)點(diǎn)用作提供方向資訊,起始點(diǎn)與起始控制點(diǎn)之間的間距決定了曲線在轉(zhuǎn)而趨進(jìn)終結(jié)點(diǎn)之前,走向終結(jié)控制點(diǎn)方向的“長(zhǎng)度有多長(zhǎng)”。利用三次貝塞爾曲線原理進(jìn)行曲線段的繪制,避免曲線出現(xiàn)鋸齒,提高曲線平滑度,操作簡(jiǎn)便且可靠性高。[〇〇32]在其中一個(gè)實(shí)施例中,如圖2所示,步驟S120之后,步驟S150之前,曲線繪制方法還包括步驟S130。[〇〇33]步驟S130:判斷是否存在上一次繪制的曲線段;若是,則進(jìn)行步驟S150。[〇〇34]在步驟S150之前進(jìn)行查找,檢測(cè)是否存在上一次繪制的曲線段,若是,則說(shuō)明本次曲線繪制不是第一次繪制,進(jìn)行步驟S150,將上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo)進(jìn)行本次曲線繪制,確保曲線的連續(xù)性。
      [0035]進(jìn)一步地,繼續(xù)參照?qǐng)D2,若不存在上一次繪制的曲線段,曲線繪制方法還可包括步驟S140。[〇〇36]步驟S140:將第一繪制點(diǎn)的坐標(biāo)作為起始點(diǎn)和起始控制點(diǎn)的坐標(biāo)。若不存在上一次繪制的曲線段,則說(shuō)明本次繪制為第一次曲線繪制,直接將第一繪制點(diǎn)的坐標(biāo)作為起始點(diǎn)和起始控制點(diǎn)的坐標(biāo)后進(jìn)行步驟S160。
      [0037]以下結(jié)合具體的實(shí)施例對(duì)上述曲線繪制方法進(jìn)行進(jìn)一步地解釋說(shuō)明。[〇〇38]使用三次貝塞爾公式畫出曲線,三次貝塞爾曲線由4個(gè)點(diǎn)決定,起始點(diǎn)P0,起始控制點(diǎn)P1、終結(jié)控制點(diǎn)P2、終結(jié)點(diǎn)P3。[0039 ]在收到鼠標(biāo)點(diǎn)擊的消息后,記錄下點(diǎn)擊坐標(biāo)(X0,Y0),將起始點(diǎn)P0、起始控制點(diǎn)P1 設(shè)為點(diǎn)擊坐標(biāo)(X0,Y0)。然后獲取到鼠標(biāo)移動(dòng)過(guò)程的坐標(biāo),收到第二個(gè)坐標(biāo)(X3,Y3)。將前后兩個(gè)鼠標(biāo)坐標(biāo)(XO,YO)和坐標(biāo)(X3,Y3)之間的距離三等分,得到中間的兩個(gè)坐標(biāo)(X1,Y1), (父2,¥2)。將終結(jié)控制點(diǎn)?2設(shè)為01,¥1),將終結(jié)點(diǎn)?3設(shè)為02,¥2),畫出貝塞爾曲線。
      [0040]繼續(xù)獲取鼠標(biāo)移動(dòng)過(guò)程的坐標(biāo),收到第三個(gè)坐標(biāo)(X6,Y6)。將起始點(diǎn)P0重新設(shè)為之前的終結(jié)點(diǎn)P3的坐標(biāo)(X2,Y2),將起始控制點(diǎn)P1重新設(shè)為之前的鼠標(biāo)移動(dòng)坐標(biāo)(X3,Y3)。將前后兩個(gè)鼠標(biāo)坐標(biāo)(X3,Y3)和坐標(biāo)(X6,Y6)之間的距離三等分,得到中間的兩個(gè)坐標(biāo)(X4, Y4)、(X5,Y5)。將終結(jié)控制點(diǎn)P2重新設(shè)為(X4,Y4),將終結(jié)點(diǎn)P3重新設(shè)為(X5,Y5),畫出貝塞爾曲線。如此,當(dāng)用戶持續(xù)控制鼠標(biāo)移動(dòng),重復(fù)上述步驟便可持續(xù)進(jìn)行各個(gè)曲線段的繪制。
      [0041]上述曲線繪制方法,使用貝塞爾曲線來(lái)連接坐標(biāo)點(diǎn),在進(jìn)行曲線繪制時(shí)每次只繪制一部分,終結(jié)點(diǎn)與繪制點(diǎn)之間的部分在下一次曲線繪制時(shí)完成。由于下一段曲線通過(guò)上一個(gè)繪制點(diǎn)調(diào)整曲線的角度,使得多條曲線的連接處光滑無(wú)鋸齒,提高了曲線的平滑度。
      [0042]本發(fā)明還提供了一種曲線繪制系統(tǒng),如圖3所示,包括繪制點(diǎn)獲取模塊110、參考點(diǎn)獲取模塊120、起始坐標(biāo)獲取模塊150、終點(diǎn)坐標(biāo)獲取模塊160和曲線繪制模塊170。
      [0043]繪制點(diǎn)獲取模塊110用于獲取用戶連續(xù)輸入的第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo)。 接收用戶輸入的繪制點(diǎn),并獲取連續(xù)輸入的第一繪制點(diǎn)和第二繪制的坐標(biāo)。第一繪制點(diǎn)和第二繪制點(diǎn)是用戶連續(xù)輸入的兩個(gè)繪制點(diǎn),可以理解,在進(jìn)行曲線繪制時(shí),隨著用戶不斷輸入繪制點(diǎn),第一繪制點(diǎn)和第二繪制點(diǎn)具體所指的點(diǎn)也會(huì)隨之發(fā)生變化。也就是說(shuō)第一繪制點(diǎn)和第二繪制點(diǎn)僅用于區(qū)分不同的點(diǎn),并沒(méi)有限定具體位置。例如在上一次繪制曲線時(shí),則第一繪制點(diǎn)是上一次繪制時(shí)的第二繪制點(diǎn)。
      [0044]用戶具體可通過(guò)點(diǎn)擊或拖動(dòng)鼠標(biāo)來(lái)輸入繪制點(diǎn),也可以是通過(guò)觸控筆、手指等點(diǎn)擊或滑動(dòng)觸控屏來(lái)進(jìn)行繪制點(diǎn)的輸入,即用戶輸入繪制點(diǎn)的方式并不唯一。本實(shí)施例中第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo)為用戶點(diǎn)擊的位置坐標(biāo),或用戶操作所產(chǎn)生的運(yùn)動(dòng)軌跡的起點(diǎn)和終點(diǎn)的坐標(biāo),例如,當(dāng)?shù)谝淮卫L制曲線段時(shí),將鼠標(biāo)點(diǎn)擊的位置作為第一繪制點(diǎn),然后獲取到鼠標(biāo)移動(dòng)結(jié)束后點(diǎn)擊的坐標(biāo),作為第二繪制點(diǎn)的坐標(biāo)。而在后續(xù)的曲線段繪制過(guò)程中,可直接將用戶拖動(dòng)鼠標(biāo)時(shí)在屏幕產(chǎn)生的運(yùn)動(dòng)軌跡的起點(diǎn)和終點(diǎn)分別作為第一繪制點(diǎn)和第二繪制點(diǎn)。
      [0045]參考點(diǎn)獲取模塊120用于選取第一繪制點(diǎn)和第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取兩個(gè)參考點(diǎn)的坐標(biāo)。在確定第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo)后,可對(duì)兩者進(jìn)行虛擬連線,選取連線上的兩個(gè)點(diǎn)作為參考點(diǎn)并進(jìn)行坐標(biāo)提取。
      [0046]參考點(diǎn)在連線上的位置可根據(jù)實(shí)際情況調(diào)節(jié),本實(shí)施例中參考點(diǎn)獲取模塊120選取第一繪制點(diǎn)和第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取兩個(gè)參考點(diǎn)的坐標(biāo)包括:獲取第一繪制點(diǎn)和第二繪制點(diǎn)之間距離的三等分點(diǎn)作為參考點(diǎn),并獲取兩個(gè)參考點(diǎn)的坐標(biāo)。 對(duì)第一繪制點(diǎn)和第二繪制點(diǎn)之間的距離三等分,得到中間的兩個(gè)坐標(biāo)作為兩個(gè)參考點(diǎn)的坐標(biāo),便于坐標(biāo)計(jì)算和提取,且在后續(xù)的曲線繪制時(shí)只畫出2/3的曲線,剩余1/3的距離用作對(duì)下一段曲線進(jìn)行曲線角度的調(diào)整,使得各曲線段的連接處光滑過(guò)度。
      [0047]起始坐標(biāo)獲取模塊150用于查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo)。
      [0048]上一次繪制的曲線段是指在同一次曲線繪制中的上一曲線段,可將鼠標(biāo)停止點(diǎn)擊或移動(dòng)作為繪制停止指令,兩次繪制停止指令之間用戶連續(xù)點(diǎn)擊鼠標(biāo)或移動(dòng)鼠標(biāo)的動(dòng)作作為同一次曲線繪制。曲線段的終點(diǎn)坐標(biāo)即指在一次曲線段繪制完成后,該曲線段的繪制終點(diǎn)的坐標(biāo)。以同一次曲線繪制中的第一個(gè)曲線段為基礎(chǔ),每次確定兩個(gè)連續(xù)的繪制點(diǎn)以及繪制點(diǎn)之間的參考點(diǎn)之后,找到上一次曲線繪制時(shí)得到的曲線段,并獲取曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo),用作后續(xù)進(jìn)行曲線繪制。
      [0049]終點(diǎn)坐標(biāo)獲取模塊160用于提取兩個(gè)參考點(diǎn)的坐標(biāo)中靠近第一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),提取另一參考點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo)。在得到兩個(gè)繪制點(diǎn)之間的參考點(diǎn)的坐標(biāo)之后,將靠近前一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),靠近后一繪制點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo),用作后續(xù)進(jìn)行曲線繪制。[0050 ]曲線繪制模塊170用于根據(jù)起始點(diǎn)的坐標(biāo)、起始控制點(diǎn)的坐標(biāo)、終結(jié)控制點(diǎn)的坐標(biāo)和終結(jié)點(diǎn)的坐標(biāo)進(jìn)行貝塞爾曲線繪制,得到本次繪制的曲線段。根據(jù)前面確定的起始點(diǎn)的坐標(biāo)、起始控制點(diǎn)的坐標(biāo)、終結(jié)控制點(diǎn)的坐標(biāo)和終結(jié)點(diǎn)的坐標(biāo)進(jìn)行貝塞爾曲線繪制,即可完成本次的曲線段繪制。起始點(diǎn)和終結(jié)點(diǎn)分別為曲線段的繪制起點(diǎn)和繪制終點(diǎn),起始控制點(diǎn)和終結(jié)控制點(diǎn)為繪制曲線段時(shí)的控制節(jié)點(diǎn),用于提供方向資訊,在由起始點(diǎn)到終結(jié)點(diǎn)繪制曲線段的過(guò)程中牽制曲線形狀路徑。利用三次貝塞爾曲線原理進(jìn)行曲線段的繪制,避免曲線出現(xiàn)鋸齒,提高曲線平滑度,操作簡(jiǎn)便且可靠性高。[0051 ]在其中一個(gè)實(shí)施例中,如圖4所示,曲線繪制系統(tǒng)還可包括曲線段查找模塊130。 [〇〇52]曲線段查找模塊130用于在參考點(diǎn)獲取模塊120選取第一繪制點(diǎn)和第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取兩個(gè)參考點(diǎn)的坐標(biāo)之后,起始坐標(biāo)獲取模塊150查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo)之前,判斷是否存在上一次繪制的曲線段;若是,則控制起始坐標(biāo)獲取模塊150查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo)。[〇〇53]檢測(cè)是否存在上一次繪制的曲線段,若是,則說(shuō)明本次曲線繪制不是第一次繪制, 控制起始坐標(biāo)獲取模塊150查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo)進(jìn)行本次曲線繪制,確保曲線的連續(xù)性。[〇〇54]進(jìn)一步地,繼續(xù)參照?qǐng)D4,曲線繪制系統(tǒng)還可包括起始坐標(biāo)確定模塊140。
      [0055]起始坐標(biāo)確定模塊140用于在不存在上一次繪制的曲線段時(shí),將第一繪制點(diǎn)的坐標(biāo)作為起始點(diǎn)和起始控制點(diǎn)的坐標(biāo),并控制終點(diǎn)坐標(biāo)獲取模塊160提取兩個(gè)參考點(diǎn)的坐標(biāo)中靠近第一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),提取另一參考點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo)。若不存在上一次繪制的曲線段,則說(shuō)明本次繪制為第一次曲線繪制,直接將第一繪制點(diǎn)的坐標(biāo)作為起始點(diǎn)和起始控制點(diǎn)的坐標(biāo)后繼續(xù)曲線繪制。
      [0056]上述曲線繪制系統(tǒng),使用貝塞爾曲線來(lái)連接坐標(biāo)點(diǎn),在進(jìn)行曲線繪制時(shí)每次只繪制一部分,終結(jié)點(diǎn)與繪制點(diǎn)之間的部分在下一次曲線繪制時(shí)完成。由于下一段曲線通過(guò)上一個(gè)繪制點(diǎn)調(diào)整曲線的角度,使得多條曲線的連接處光滑無(wú)鋸齒,提高了曲線的平滑度。
      [0057]以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說(shuō)明書記載的范圍。
      [0058]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
      【主權(quán)項(xiàng)】
      1.一種曲線繪制方法,其特征在于,包括以下步驟:獲取用戶連續(xù)輸入的第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo);選取所述第一繪制點(diǎn)和所述第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取所述兩個(gè)參 考點(diǎn)的坐標(biāo);查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將所述第一繪制點(diǎn)的坐標(biāo) 作為起始控制點(diǎn)的坐標(biāo);提取所述兩個(gè)參考點(diǎn)的坐標(biāo)中靠近所述第一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),提 取另一參考點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo);根據(jù)所述起始點(diǎn)的坐標(biāo)、所述起始控制點(diǎn)的坐標(biāo)、所述終結(jié)控制點(diǎn)的坐標(biāo)和所述終結(jié) 點(diǎn)的坐標(biāo)進(jìn)行貝塞爾曲線繪制,得到本次繪制的曲線段。2.根據(jù)權(quán)利要求1所述的曲線繪制方法,其特征在于,所述選取所述第一繪制點(diǎn)和所述 第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取所述兩個(gè)參考點(diǎn)的坐標(biāo)的步驟包括:獲取所 述第一繪制點(diǎn)和所述第二繪制點(diǎn)之間距離的三等分點(diǎn)作為參考點(diǎn),并獲取兩個(gè)所述參考點(diǎn) 的坐標(biāo)。3.根據(jù)權(quán)利要求1所述的曲線繪制方法,其特征在于,所述選取所述第一繪制點(diǎn)和所述 第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取所述兩個(gè)參考點(diǎn)的坐標(biāo)的步驟之后,所述查 找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將所述第一繪制點(diǎn)的坐標(biāo)作為起 始控制點(diǎn)的坐標(biāo)的步驟之前,還包括以下步驟:判斷是否存在上一次繪制的曲線段;若是,則進(jìn)行所述查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將所述 第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo)的步驟。4.根據(jù)權(quán)利要求3所述的曲線繪制方法,其特征在于,若不存在上一次繪制的曲線段, 還包括以下步驟:將所述第一繪制點(diǎn)的坐標(biāo)作為起始點(diǎn)和起始控制點(diǎn)的坐標(biāo),并進(jìn)行所述提取所述兩個(gè) 參考點(diǎn)的坐標(biāo)中靠近所述第一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),提取另一參考點(diǎn)的坐 標(biāo)作為終結(jié)點(diǎn)的坐標(biāo)的步驟。5.根據(jù)權(quán)利要求1所述的曲線繪制方法,其特征在于,所述第一繪制點(diǎn)和第二繪制點(diǎn)的 坐標(biāo)為用戶點(diǎn)擊的位置坐標(biāo),或用戶操作所產(chǎn)生的運(yùn)動(dòng)軌跡的起點(diǎn)和終點(diǎn)的坐標(biāo)。6.—種曲線繪制系統(tǒng),其特征在于,包括:繪制點(diǎn)獲取模塊,用于獲取用戶連續(xù)輸入的第一繪制點(diǎn)和第二繪制點(diǎn)的坐標(biāo);參考點(diǎn)獲取模塊,用于選取所述第一繪制點(diǎn)和所述第二繪制點(diǎn)之間連線上的兩個(gè)參考 點(diǎn),并獲取所述兩個(gè)參考點(diǎn)的坐標(biāo);起始坐標(biāo)獲取模塊,用于查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并 將所述第一繪制點(diǎn)的坐標(biāo)作為起始控制點(diǎn)的坐標(biāo);終點(diǎn)坐標(biāo)獲取模塊,用于提取所述兩個(gè)參考點(diǎn)的坐標(biāo)中靠近所述第一繪制點(diǎn)的坐標(biāo)作 為終結(jié)控制點(diǎn)的坐標(biāo),提取另一參考點(diǎn)的坐標(biāo)作為終結(jié)點(diǎn)的坐標(biāo);曲線繪制模塊,用于根據(jù)所述起始點(diǎn)的坐標(biāo)、所述起始控制點(diǎn)的坐標(biāo)、所述終結(jié)控制點(diǎn) 的坐標(biāo)和所述終結(jié)點(diǎn)的坐標(biāo)進(jìn)行貝塞爾曲線繪制,得到本次繪制的曲線段。7.根據(jù)權(quán)利要求6所述的曲線繪制系統(tǒng),其特征在于,所述參考點(diǎn)獲取模塊選取所述第一繪制點(diǎn)和所述第二繪制點(diǎn)之間連線上的兩個(gè)參考點(diǎn),并獲取所述兩個(gè)參考點(diǎn)的坐標(biāo)包 括:獲取所述第一繪制點(diǎn)和所述第二繪制點(diǎn)之間距離的三等分點(diǎn)作為參考點(diǎn),并獲取所述 兩個(gè)參考點(diǎn)的坐標(biāo)。8.根據(jù)權(quán)利要求6所述的曲線繪制系統(tǒng),其特征在于,還包括:曲線段查找模塊,用于在所述參考點(diǎn)獲取模塊選取所述第一繪制點(diǎn)和所述第二繪制點(diǎn) 之間連線上的兩個(gè)參考點(diǎn),并獲取所述兩個(gè)參考點(diǎn)的坐標(biāo)之后,所述起始坐標(biāo)獲取模塊查 找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將所述第一繪制點(diǎn)的坐標(biāo)作為起 始控制點(diǎn)的坐標(biāo)之前,判斷是否存在上一次繪制的曲線段;若是,則控制所述起始坐標(biāo)獲取 模塊查找上一次繪制的曲線段的終點(diǎn)坐標(biāo)作為起始點(diǎn)的坐標(biāo),并將所述第一繪制點(diǎn)的坐標(biāo) 作為起始控制點(diǎn)的坐標(biāo)。9.根據(jù)權(quán)利要求8所述的曲線繪制系統(tǒng),其特征在于,還包括:起始坐標(biāo)確定模塊,用于在不存在上一次繪制的曲線段時(shí),將所述第一繪制點(diǎn)的坐標(biāo) 作為起始點(diǎn)和起始控制點(diǎn)的坐標(biāo),并控制所述終點(diǎn)坐標(biāo)獲取模塊提取所述兩個(gè)參考點(diǎn)的坐 標(biāo)中靠近所述第一繪制點(diǎn)的坐標(biāo)作為終結(jié)控制點(diǎn)的坐標(biāo),提取另一參考點(diǎn)的坐標(biāo)作為終結(jié) 點(diǎn)的坐標(biāo)。10.根據(jù)權(quán)利要求6所述的曲線繪制系統(tǒng),其特征在于,所述第一繪制點(diǎn)和第二繪制點(diǎn) 的坐標(biāo)為用戶點(diǎn)擊的位置坐標(biāo),或用戶操作所產(chǎn)生的運(yùn)動(dòng)軌跡的起點(diǎn)和終點(diǎn)的坐標(biāo)。
      【文檔編號(hào)】G06T11/20GK106023279SQ201610308020
      【公開日】2016年10月12日
      【申請(qǐng)日】2016年5月9日
      【發(fā)明人】薄景仁
      【申請(qǐng)人】廣州視睿電子科技有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1