随笔6(java)

本套件主要解决的问题是:

Java前端控制学习难度较高,但实际应用场景较少,本套件能让Java学习者简单快速的实现JAVA前端中控件的各种运动方式,而无需完整学习Java的UI代码块。

本套件在Java三种前端实现方案中(awt,swing,swt)中选用了资源占用最小也是最新的Swt方案,由于控件运动的共通性,故选用了最具代表性的Button控件作为运动实例控件。

套件命名为GMP(Graphics Moving Package),导入Java项目中即可使用。套件内带有一个监听类ButtonMoveListener,两个工具类GongJu、Model。

Model工具类中有四种运动方式可选,分别是circle(圆周运动)、straight(直线运动)、minLeap(最小位移运动)、absStraight(绝对直线运动)。

circle(圆周运动)支持一个button以另一个button0为圆心做圆周运动,button的运动速度可控(通过单次运动长度和线程休眠时间),button0也可同时环绕另外一个button2做圆周运动,故此运动方式可表现双星运动或月地日三星运动规律;

straight(直线运动)支持一个button以另一个button0为目标做最小路径的直线运动, button的运动速度可控(通过单次运动长度和线程休眠时间),button0亦可参与其他运动中;

minLeap(最小位移运动)支持一个button以另一个button0为终点做每次横纵坐标至多1变化的运动,button的单次运动时间可控(通过线程休眠时间),此项适用于运动追踪,button0亦可参与其他运动中;

absStraight(绝对直线运动)支持一个button以另一个button0为目的地做绝对直线运动,以上运动由于计算误差或其他原因难以保证绝对直线,此项通过计算横纵坐标的最大公约数得到绝对直线运动轨迹,button的单次运动时间可控(通过线程休眠时间),此项适用于描画基准线,不建议button0参与其他运动中。

GongJu类中有六种方法可用,分别是around(double类型约数)、maxCommonDivisor(最大公约数)、RectToPolar(直角坐标转极坐标)、PolarToRect(极坐标转直角坐标)、getSpeedXY(得到横纵坐标运动速度)、minLeap(最小位移横纵坐标运动位移),主要用于Model类的运动计算,亦可供自定义运动方式使用。

around(double类型约数)保持以四舍五入的方式精确控制位数,以供运动button确定横纵坐标;

maxCommonDivisor(最大公约数)得到两个数的最大公约数,以供absStraight(绝对直线运动)使用;

RectToPolar(直角坐标转极坐标)将以button0为圆心建立极坐标系,将button的直角坐标转化为以button0为圆心的极坐标,通过改变相同的角度,保证button运动的平稳性,此项供circle(圆周运动)使用;

PolarToRect(极坐标转直角坐标)将均匀变化的button的极坐标转化为直角坐标以供在前端显示,以契合Java前端中的只支持直角坐标的控件位置控制方式,此项供circle(圆周运动)使用;

getSpeedXY(得到横纵坐标运动速度)通过计算运动button和目标button0的横纵坐标差值,等到其角度,再将设定的速度通过正余弦计算,得到横纵坐标方向的运动边速度,使其轨迹最大程度保持直线,此项供straight(直线运动)使用;

minLeap(最小位移横纵坐标运动位移)返回目标button0与运动button横纵坐标各自差值的正负,确定button的运动大致方向,此项供minLeap(最小位移运动)使用。

ButtonMoveListener监听类提供鼠标右键按压拖动button控件的监听事件,再任意button控件中加上addMouseListener(newButtonMoveListener())可实现任意拖动功能。

与此之外,还提供四种基本运动实例及一个自定义运动实例,自定义运动实例ModelRainbow实现点击按钮在其周围形成彩虹功能,展示轨迹显示方法及色彩描绘方法。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值