tk/tkx canvas區域放大的代碼

canvas放大後,移動canvas使其在屏幕中央

通過拖拽鼠標畫方框的方式放大

這裏寫圖片描述

### 下面是對x軸方向的代碼

my $canvasx = xxxxx;  ## canvas畫布的x方向長度
my $canvas_point_x0 = $canvas->canvasx(x0);  ## view window的(x0,y0)點處畫布上的x座標
my $canvas_point_x1 = $canvas->canvasx(x1);  ## view window的(x1,y1)點處畫布上的x座標
my ($xoff_1, $xoff_2) = Tkx::SplitList($canvas->m_xview());  ## 返回畫布的偏移量,0-1的小數值

my $xoff_ratio = abs($canvas_point_x0 - $canvas_point_x1) / $canvasx;  ## 計算畫布放大後需要移動的長度佔用總長度的比例,
$xoff_1 += $xoff_ratio;  ##  把計算的比例與原偏移量相加

##  執行圖形區域放大的代碼
##  調整滾動條參數 scrollregion 的代碼
...
......
...

$canvas->m_xview("moveto", $xoff_1); ## 移動畫布,把剛剛放大部分置於view window中心。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章