如何在PB中畫箭頭(二)
2024-07-21 02:10:02
供稿:網友
如何在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:[email protected])------------------------------------------------------------------------------*/
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:[email protected])------------------------------------------------------------------------------*/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啦,呵呵,如果有什么建議的話,請與我聯系吧!聯系方法上面都有哦。
,歡迎訪問網頁設計愛好者web開發。