问一下canvas中scale()的参数的意思?

birdflyer 2012-09-20 08:30:52
scale(sx,sy)是用来缩放坐标的,按照w3school的说法,参数sx和sy是指原来坐标的SX(SY)倍
这就是说如果设置scale(2,2),意思是x坐标和y坐标都是原来的两倍,也即是(100,100)变成(200,200);scale(1,1)就是都不变。
但是尝试在Dreamweaver(应该是webkit内核)和firefox中scale(1,1),结果是扩大一倍的意思,也即是原来的两倍,有木有高手能准确说明一下这两个参数到底什么意思?
...全文
315 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jc_registration 2012-09-21
  • 打赏
  • 举报
回复
我觉得你应该检查下代码看看. 1,1是不变是肯定是对的.

w3school的原话是

"scale() 方法为画布的当前变换矩阵添加一个缩放变换。缩放通过独立的水平和垂直缩放因子来完成。例如,传递一个值 2.0 和 0.5 将会导致绘图路径宽度变为原来的两倍,而高度变为原来的 1/2。指定一个负的 sx 值,会导致 X 坐标沿 Y 轴对折,而指定一个负的 sy 会导致 Y 坐标沿着 X 轴对折。"

不对你还是有点理解不正确.
它是缩放矩形,而不是你说的点.

如果是点的话, 参数应该只有一个才对
new Point(x, y).scale(1.5);
这样的scale只是将点x,y到0,0的斜边长度延长.
birdflyer 2012-09-21
  • 打赏
  • 举报
回复
抱歉,似乎是我自己fillRect的像素搞错了。。。
birdflyer 2012-09-21
  • 打赏
  • 举报
回复
我知道各种文档似乎都是表示scale(1.1)是不变的意思,但是实际测试下来都是扩大一倍的意思?!!
孟子E章 2012-09-20
  • 打赏
  • 举报
回复
scale(1,1)应该是不变的,Firefox文档有说明

https://developer.mozilla.org/en-US/docs/Canvas_tutorial/Transformations

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧