如何在PB中畫箭頭(二) - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- 如何在PB中畫箭頭(二) (http://www.webasp.net/article/22/21191.htm) |
| -- 作者:未知 -- 發佈日期: 2005-04-29 |
如何在PB中畫箭頭(二)by ...---... ( QQ: 21417511 ) 先說一段廢話:CSDN的BLOG是我使用過的所有BLOG中最有意思的一個,它具有如下優點:1、可以消磨時間;2、可以培養自己的細心;3、可以鍛煉人的耐心與忍受力;4、可以促進身體健康;5、讓大家提前享受共產主義;為什麼這樣說呢,因為這東東在我用的過程中,經常在修改BLOG時會出現自動COPY一段文字。刪除掉自動COPY出來的文字並預覽,一切OK,如果認為這時候已經沒問題了,點發表,再到網頁上看,嘻嘻,還是會一樣自動COPY那一段在那兒,這就要考驗你的細心啦,不要被預覽成功的假象迷住哦!經過N次的編輯、刪除、發表、查看等一系列過程,問題一定是沒有辦法解決好的,當然這中間還需要你的耐心與忍受能力啦,反正多扯幾根頭髮對人身體也是好的,畢竟可以促進新陳代謝嘛!最後我發現一個終極解決方法,那就是全部刪除掉,直接發表,然後重寫就OK啦,為了改BLOG裡的幾個字,差不多花了一個半小時,這不是最好的消磨時間方法嗎?雖然,我也用過其它的BLOG系統,但是經過比較,發現還是CSDN的好,因為它不帶模板,大家看上去一個樣,沒有個人英雄主義,多好啊,千篇一律,提前實現主產主義! 好了,轉回正題,上文中我們複習了一些高中的基礎知識,下面我們就來構建函數,進行畫箭頭的正式工作啦!/*------------------------------------------------------------------------------ Function: public w_process.wf_Getpoint Returns: (none) Parameters: value Long al_x1 value Long al_y1 value Long al_x2 value Long al_y2 value Long al_angle value Long al_width reference Long al_a1x1 reference Long al_a1y1 reference Long al_a2x1 reference Long al_a2y1 Description: -------------------------------------------------------------------------------- 2005-04-15 2.0.0 Initial version by cuixuf (Mail:cuixuf@sina.com)------------------------------------------------------------------------------*/ real lr_angle, & lr_angle1, & lr_angle2 //先獲取直線夾角If al_x2 = al_x1 then If al_y2 > al_y1 then lr_angle = pi(1) + pi(1/2) Else lr_angle = pi(1/2) End ifElse lr_angle = atan((al_y2 - al_y1)/(al_x2 - al_x1)) End if//注意一下直線的方向If al_x2 > al_x1 then lr_angle = pi(1) + lr_angle lr_angle1 = lr_angle + al_angle*(pi(2)/360)lr_angle2 = lr_angle - al_angle*(pi(2)/360) //求兩條邊的坐標al_a1x1 = al_x2 + al_width*(cos(lr_angle1))al_a1y1 = al_y2 + al_width*(sin(lr_angle1))al_a2x1 = al_x2 + al_width*(cos(lr_angle2))al_a2y1 = al_y2 + al_width*(sin(lr_angle2)) 求得坐標以後,我們就是要構造創建箭頭的函數啦!/*------------------------------------------------------------------------------ Function: public w_process.wf_Createline Returns: String Parameters: value String as_tag value Long al_x1 value Long al_y1 value Long al_x2 value Long al_y2 Description: -------------------------------------------------------------------------------- 2005-04-15 2.0.0 Initial version by cuixuf (Mail:cuixuf@sina.com)------------------------------------------------------------------------------*/string ls_createlong ll_a1X1, & ll_a1Y1, & ll_a2X1, & ll_a2Y1, & ll_len = 50, & ll_degree = 15 wf_getpoint(al_x1,al_y1,al_x2,al_y2,ll_degree,ll_len,ll_a1x1,ll_a1y1,ll_a2x1,ll_a2y1) ls_create = "create line(band=Detail" + &" pointer='Arrow!' moveable=0 resizeable=0 x1='"+string(al_X1)+"' y1='"+string(al_Y1)+"' x2='"+string(al_X2)+"' y2='"+string(al_Y2)+"' name=l_" + as_tag + &" tag='"+as_tag+"' pen.style='0'" + &" pen.width='3' pen.color='134217856' background.mode='1' background.color='1073741824')" ls_create += "~tcreate line(band=Detail" + &" pointer='Arrow!' moveable=0 resizeable=0 x1='"+string(ll_a1X1)+"' y1='"+string(ll_a1Y1)+"' x2='"+string(al_X2)+"' y2='"+string(al_Y2)+"' name=l_" + as_tag+"_1" + &" tag='' pen.style='0'" + &" pen.width='1' pen.color='134217856' background.mode='1' background.color='1073741824')" ls_create += "~tcreate line(band=Detail" + &" pointer='Arrow!' moveable=0 resizeable=0 x1='"+string(ll_a2X1)+"' y1='"+string(ll_a2Y1)+"' x2='"+string(al_X2)+"' y2='"+string(al_Y2)+"' name=l_" + as_tag+"_2" + &" tag='' pen.style='0'" + &" pen.width='1' pen.color='134217856' background.mode='1' background.color='1073741824')" return ls_create 根據上面函數返回的CREATE語句,我們只需要通過MODIFY方法就能實現畫箭頭的功能啦,其它的就不用我多說了吧,比較簡單,就不給出EXAMPLE啦,呵呵,如果有什麼建議的話,請與我聯繫吧!聯繫方法上面都有哦。 |
| webasp.net |