为了账号安全,请及时绑定邮箱和手机立即绑定

rotate 命令将 rect 平移到另一个位置处理

rotate 命令将 rect 平移到另一个位置处理

交互式爱情 2022-12-29 14:03:08
我在处理过程中将矩形旋转了 35。这是我的代码。pushMatrix();rotate(35);stroke(74, 73, 74);fill(156, 153, 153);rect(cannon1PositionX,cannon1PositionY,25,60,50);noStroke();fill(173, 168, 173);rect(cannon1PositionX + 3,cannon1PositionY + 4,20,50,50);popMatrix();但是,如果我将旋转更改为 40,则矩形将旋转并平移到另一个位置。如何解决这个问题?
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

你的问题是,当你第一次使用时,rotate()你是在参考整个画布旋转,所以当你使用时canon1PositionX,cannon1PositionY根据你当前面对画布的角度,位置会发生变化。


您需要做的是:


pushMatrix();

// Go to the cannon position

translate(cannon1PositionX, cannon1PositionY);

// Rotate to the right angle

rotate(35);

// Draw the cannon at the current position and with the right angle

rect(0, 0, 25, 60, 50);

// Draw the second cannon next to the current one

rect(3, 4, 20, 50, 50);

popMatrix();


查看完整回答
反对 回复 2022-12-29
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信