[GEiv]第四章:图元详解(二) 实用方法

第四章:图元详解(二)

实用方法

        这篇文章主要对图元中的实用方法进行一系列介绍。

[实用方法]

        在图元的方法当中,除去变换图形的视觉样式之外,还提供了一系列实用方法,它们会在您的开发过程中提供额外支持。

[面积函数]

        getSquare方法可以返回一个封闭多边形的面积。

例子:

public static void main(String[] args) {
              UESIUES = new R();
              Objrect = UES.creatObj(UESI.BGIndex);
              rect.addGLRect("FFFFFF",0,0,30,50);
              System.out.println(rect.getSquare());
       }


        控制台打印结果:1500.0

[碰撞函数]

        PolygonCollide函数可以判断两个多边形是否发生了碰撞。

例子:

              UESI UES = new R();
              Objrect = UES.creatObj(UESI.BGIndex);
              rect.addGLRect("FFFFFF",0,0,300,300);
              rect.setAngle(45);
              rect.setPosition(CANExPos.POS_CENTER);
              rect.setDx(rect.getDx()+ 200);
              rect.show();
             
              Objrect2 = UES.creatObj(UESI.BGIndex);
              rect2.addGLRect("FFFF00",0,0,300,300);
              rect2.setAngle(45);
              rect2.setPosition(CANExPos.POS_CENTER);
              rect2.setDx(rect2.getDx()- 200);
              rect2.show();
              System.out.println(rect.PolygonCollide(rect2));


        

打印结果:true

        将上例中两个矩形长宽改为200:

        

打印结果:false

[距离相关性]

        getRefDistance函数可返回两个图元的中心距离,将以false为结果的上例,加入如下语句:

rect.getRefDistance(rect2);

打印结果:

false

400.0

[角度相关性]

        rect.getRefTheta函数可以返回另一个图元中心相对于本图元中心的弧度值,该值以Y负方向为0点,顺时针为正。

    

              UESI UES =new R();
              Objrect = UES.creatObj(UESI.BGIndex);
              rect.addGLRect("FFFFFF",0,0,100,100);
              rect.setPosition(CANExPos.POS_CENTER);
              rect.show();
              Objrect2 = UES.creatObj(UESI.BGIndex);
              rect2.addGLRect("FFFF00",0,0,100,100);
              rect2.setPosition(CANRefPos.RPO_CORNER_RIGHTTOP,rect,100f);
              rect2.show();
              System.out.println(rect.getRefTheta(rect2));

        

        打印结果:0.7853982(约为PI/4)

[简单动画]

        在某种场合下,我们仅需要进行一些简单的移动实现,为了这个简单的动画书写Serial似乎很不值得,因此有一组移动图元的方法:

        moveCTo(Dx,Dy, allms):将图元的中心移动到给定位置,最后一个参数allms代表经历的时间。

        moveDTo(Dx,Dy, allms):原理如上,是把图元的位置(不是中心)移动到指定值。

在实际的开发过程中,这两个方法用到的并不多,所以大部分情况下,实现动画效果还是老老实实地写Serial吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值