Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在java中旋转矩形对象

在java中旋转矩形对象
EN

Stack Overflow用户
提问于 2013-09-17 14:06:40
回答 3查看 15.7K关注 0票数 3

Rectangle物体有可能在一定程度上绕轴旋转吗?它和Rectangle rect = new Rectangle(x,y,w,h,r)一样容易吗?

如果不可能旋转物体,有什么方法可以得到类似的结果呢?

编辑:为了清晰起见,我有些图像是旋转的,但是当它们与其他图像碰撞时,碰撞只在90度和180度旋转时工作,因为它们的命中框矩形对象不旋转。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-17 14:24:20

编辑:为了清晰起见,这是我的困境,我有图像旋转,但当它们与其他图像接合时,碰撞只能在90度和180度旋转,因为它们的命中框矩形对象不能旋转。

您可以使用Rectangle2D方法( AffineTransform方法createTransformedShape(...) )旋转形状派生对象(如createTransformedShape(...))。

代码语言:javascript
运行
AI代码解释
复制
Rectangle2D myRect = new Rectangle2D.Double(100, 100, 200, 200);
AffineTransform at = AffineTransform.getRotateInstance(Math.PI / 4, 150, 150);
Shape rotatedRect = at.createTransformedShape(myRect);

注意:未编译或测试的代码。

票数 3
EN

Stack Overflow用户

发布于 2013-09-17 14:09:50

若要旋转矩形,请为图形上下文提供一个旋转的AffineTransform。下面是一个例子:

代码语言:javascript
运行
AI代码解释
复制
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    AffineTransform oldTransform = g2d.getTransform();
    g2d.setTransform(AffineTransform.getRotateInstance(radians);
    g2d.draw(rectangle);
    g2d.setTransform(oldTransform);
}

您还可以使用g2d.rotate(radians)进行旋转。

注意,角度必须是弧度。若要将度转换为弧度,请使用degrees * (Math.PI/180)作为角度。

票数 0
EN

Stack Overflow用户

发布于 2017-07-08 06:00:41

还有另一种方法(除了createTransformedShape)可以创建更少的临时对象(如果需要的话)。

您可以保留一个Rectangle2D,而不是为边界框保留一个Path2D,然后使用Path2D.transform(AffineTransform)执行转换。

代码语言:javascript
运行
AI代码解释
复制
import java.awt.geom.*;

public class Example {
    private final Path2D hitBox;

    public Example(Rectangle2D initialHitBox) {
        this.hitBox = new Path2D.Double(initialHitBox);
    }

    public void transform(AffineTransform tx) {
        path.transform(tx); // In-place transformation.
    }

    // ...
}

这与 actually does under the hood非常相似。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18860700

复制
相关文章
小程序中点击子元素事件而不触发父元素的点击事件
在测试小程序的时候,发现了这样的一个bug,点击子元素事件d的时候触发父元素的点击事件,从而执行父级的点击事件,跳转到了父级的点击事件的页面了。
王小婷
2019/02/21
6.3K0
小程序中点击子元素事件而不触发父元素的点击事件
禁止子视图响应父视图的点击事件
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/50970367
用户1451823
2018/09/13
1.8K0
Vue父组件调用子组件事件
Vue父组件向子组件传递事件/调用事件 不是传递数据(props)哦,适用于 Vue 2.0 方法一:子组件监听父组件发送的方法 方法二:父组件调用子组件方法 子组件: export default { mounted: function () { this.$nextTick(function () { this.$on('childMethod', function () { console.log('监听成功') })
大鹅
2021/06/11
7600
Vue父组件与子组件传递事件/调用事件
如上:通过this.$emit()来触发父组件的方法。具体就是子组件触发$emit绑定的事件watchChild,然后父组件监听watchChild,一旦watchChild被触发便会触发父组件的parentReceive方法。
IT工作者
2022/02/17
3.5K0
子组件派发事件和值给父组件
父组件通过v-on绑定子组件派发的事件,并触发一个新的事件,新的事件内可以接收传来的值
小小杰啊
2022/12/21
3140
自定义事件子组件与父组件通信
子组件中使用 $emit(‘tt’) 1. 示例一 ---- <div id="app"> <parent @tt="go"></parent> {{ msg }} </div> <script> var par = { template: `<div> <button @click="$emit('tt', 'liang')">点我</button> </div>` } let vm = new Vue({ el: '#app', data: { msg: 'init' }, componen
很酷的站长
2023/02/17
4280
自定义事件子组件与父组件通信
vue中在父组件点击按钮触发子组件的事件
1、父组件的button元素绑定click事件,该事件指向notify方法 2、给子组件注册一个ref=“child” 3、父组件的notify的方法在处理时,使用了$refs.child把事件传递给子组件的parentMsg方法,同时携带着父组件中的参数msg 4、子组件接收到父组件的事件后,调用了parentMsg方法,把接收到的msg放到message数组中
江一铭
2022/06/16
6.8K0
事件处理程序
IE实现了与DOM中类似的两个方法:attachEvent()和detachEvent()。
RiemannHypothesis
2022/10/31
7160
浅谈JavaScript的事件(事件处理程序)
  事件就是用户或者浏览器自身执行的某种动作。诸如click、load和mouseover,都是事件的名字。而响应某个事件的函数就叫事件处理程序。事件处理程序的名字以“on”开头,比如click事件的事件处理程序是onclick。为事件指定事件处理程序的方式有多种方式。 HTML事件处理程序 元素支持的事件,都可以使用与相应事件处理程序同名的HTML特性来指定。这个特性的值能支持一定的JavaScript代码。例如,在单击按钮的时候执行一些JavaScript代码。 <div id="aa" onclic
水击三千
2018/02/27
1.6K0
小程序父组件向子组件传值
子组件:tabs1 父组件:demo04 先将子组件和父组件直接产生特定的联系,需要在demo04.json里面以键值对的方式添加。
全栈程序员站长
2022/08/30
6080
小程序父组件向子组件传值
微信小程序父组件调用子组件的方法
在子组件的里的methods里定义一个方法 // components/header/header.js Component({ properties: { }, data: {}, methods: { getrun() { console.log('我是子组件的方法') }, } }) 在父组件的调用里定义一个id唯一标识 按钮用来获取子组件的方法 <header id="header"></header> <button bindtap="getson
明知山
2020/09/03
7.6K1
JavaScript事件处理程序
事件就是用户或者浏览器执行的某种操作。我们常用的点击,滚动视口,鼠标滑动都是事件,为响应事件而调用的函数被称为事件处理程序,在js中事件处理程序的名字以 on 开头。
大熊G
2022/11/14
5840
Vue-自定义事件之—— 子组件修改父组件的值
如何利用自定义的事件,在子组件中修改父组件里边的值? 关键点记住:三个事件名字 步骤如下: 这里,相对本案例,父组件定义为Second-module,对应的子组件是Three-module 第一步:你
xing.org1^
2018/05/17
1.3K0
vue 父组件调用子组件的方法_vue子组件修改父组件值
我们都知道通过$ref可以获取到某个DOM,但是它也可以用来获取子组件的实例,调用子组件的方法
全栈程序员站长
2022/11/09
2.2K0
子组件传对象给父组件_react子组件改变父组件的状态
sendData = () => { let data = ‘1234’; this.props.getData(data); //这个this,props.xxx 后面的xxx是是在父组件那使用的名字; }, 然后可以在render函数后使用这个方法或者另外定义一个事件去触发该方法进行传值,
全栈程序员站长
2022/10/04
3K0
vue 父组件调用子组件的函数_vue子组件触发父组件方法
项目里将element-ui的el-upload写成公共组件方便调用,官方的before-upload方法用于处理上传前要做的事,如:比较文件大小,限制文件类型等,通过返回true 或 false 控制是否上传。 当该组件调用父组件方法,并且要能获取到父组件方法的返回值,如何实现?
全栈程序员站长
2022/11/10
3.2K0
JavaScript事件对象与事件处理程序
事件对象:在DOM触发事件时,会产生一个事件对象event,这个事件对象包含着所有与事件相关的信息。既然event是事件对象,那么它必然存在属性
小蔚
2019/09/11
8630
微信小程序子组件监听父组件传递的值
Component({ properties: { qa: Object, }, observers: { 'qa': function (params) { console.log(params) },
明知山
2021/02/05
1.5K0
Vue 在父(子)组件引用其子(父)组件方法和属性
<button @click="callChildMethod()">父组件调用子组件方法</button>
授客
2020/06/23
1.9K0
vue父组件操作子组件的方法_vue父组件获取子组件数据
我们经常分不清什么是父组件,什么是子组件。现在来简单总结下:我们将某段代码封装成一个组件,而这个组件又在另一个组件中引入,而引入该封装的组件的文件叫做父组件,被引入的组件叫做子组件。具体代码如下
全栈程序员站长
2022/09/19
7.2K0
vue父组件操作子组件的方法_vue父组件获取子组件数据

相似问题

为什么我的网站没有部署在heroku上?

11

如何在Heroku上部署一个网站?

53

如何更新部署在heroku上的网站?

21

如何在Heroku上部署Dockerized网站

10

我的网站在部署到Heroku时会缩小

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档