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中心。