您现在的位置是:首页 > 编程 > 

图形编辑器基于Paper.js教程21:在画布中创建一个不随视图缩放的矩形,并固定在视图的位置,标尺功能的实现

2025-07-19 14:43:51
图形编辑器基于Paper.js教程21:在画布中创建一个不随视图缩放的矩形,并固定在视图的位置,标尺功能的实现 在图形编辑器中,一般都会有标尺的功能,标尺工具,能够让用户建立清晰的坐标系,能够知道原点在那里,并且能够大致估算出,尺寸,距离,和当前光标所在的位置。 如下图标尺所在的位置:标尺工具具有以下这样几个特性 1:标尺的尺寸大小不随着视图的缩放而改变 2:固定在画布的四周,一般在上面和左

图形编辑器基于Paper.js教程21:在画布中创建一个不随视图缩放的矩形,并固定在视图的位置,标尺功能的实现

在图形编辑器中,一般都会有标尺的功能,标尺工具,能够让用户建立清晰的坐标系,能够知道原点在那里,并且能够大致估算出,尺寸,距离,和当前光标所在的位置。 如下图标尺所在的位置:

标尺工具具有以下这样几个特性 1:标尺的尺寸大小不随着视图的缩放而改变 2:固定在画布的四周,一般在上面和左边,有些坐标系是在下面

下面讲一下如何 做一个简单的标尺工具 之前的文章我已经告诉大家如何做一个不随视图改变大小的圆,圆是最容易实现的,因为,使用缩放比计算半径就可以啦。矩形就稍微麻烦一些,视图缩放后需要对矩形 进行反缩放,才能保证大小。 这还不算难,难点在计算视图缩放后,矩形应该移动多少才能保持在屏幕的固定位置。

在视图缩放后,让矩形在视觉上 不改变大小, 核心代码如下:

代码语言:javascript代码运行次数:0运行复制
function afterZoom() {
  var currentZoom = paper.view.zoom;
  var desiredSize = 100; // 屏幕上希望的尺寸
  var scalingFactor = desiredSize / (rectangle.bounds.width * currentZoom);
  rectangle.scale(scalingFactor);
}

在所发后,对一个矩形执行反缩放就能实现矩形在视觉上尺寸一致不变。

下面要实现不管以画布那个位置为缩放中心,对视图进行缩放,矩形都能“不会动”

代码语言:javascript代码运行次数:0运行复制
// 缩放前先获取矩形中心,然后转换为视图的坐标 
var rectangle = paper.project.getItem({ name: "fizzRect" });
// 获取矩形的中心点
var rectCenter = rectangle.;
var newViewPosition = paper.view.projectToView(rectCenter);

paper.view.scale(delta, viewPosition);

// 视图缩放后,使用视图坐标,再转换成项目的坐标,重新设置矩形中心点坐标,齐活
var newRectCenter = paper.view.viewToProject(newViewPosition);
// 移动矩形,使其中心保持在相对于视图的相同位置
rectangle.position = newRectCenter;

看一下效果, 如下图: 默认情况

缩放后

对于画布的移动,更加简单只需调整 上标尺中心点的y值,或者左标尺中心点的x值。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-21,如有侵权请联系 cloudcommunity@tencent 删除编辑器工具教程varview

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1142616.html

相关标签:无
上传时间: 2025-07-19 08:27:58
留言与评论(共有 6 条评论)
本站网友 王金秋
9分钟前 发表
难点在计算视图缩放后
本站网友 济南婚礼
20分钟前 发表
能够让用户建立清晰的坐标系
本站网友 玛丽莲曼森
20分钟前 发表
viewPosition); // 视图缩放后
本站网友 刷百度下拉框
2分钟前 发表
这还不算难
本站网友 中国保险业现状
2分钟前 发表
更加简单只需调整 上标尺中心点的y值