前段有牛人写了很多SWING的应用效果,觉得SWING实在是不可小视。嘿嘿,没事写着玩,不要跟牛人相比,看了你才知道真的可以用代码制造出来绚烂的效果。也许我们中的每一个都可以。
看了那个《飞屋环游记》的文章后,想再完善里边的云彩,如果可以用代码制造出来随机生成、色彩斑斓的祥云,代替呆板的静态底图,那这也是为牛人的补充啊。
不管咋样,最后做出来的效果也还差强人意:
这个祥云的动画效果主要关键点是云彩形状的控制,云彩位置的动画(制造动画的效果)和颜色的随机分配和透明度设置问题。分开来好好解决这三个问题,这个最终效果就出来了。随机分配都是用了别人产品的,不过一下子就好简单了。
云彩形状的控制:
Area shape = null;
for (int i = 0; i < 10; i++) {
int w = 100 + TWaverUtil.getRandomInt(200);
int h = 50 + TWaverUtil.getRandomInt(100);
int offsetSeed = 100;
int xOffset = TWaverUtil.getRandomInt(offsetSeed) - offsetSeed;
int yOffset = TWaverUtil.getRandomInt(offsetSeed / 4) - offsetSeed / 4;
Area circle = new Area(new Ellipse2D.Double(centerX + xOffset, centerY + yOffset, w, h));
if (shape == null) {
shape = circle;
} else {
shape.add(circle);
}
}
//transform.
Rectangle bounds = shape.getBounds();
double xScale = width / bounds.getWidth();
double yScale = height / bounds.getHeight();
AffineTransform at = AffineTransform.getScaleInstance(xScale, yScale);
return at.createTransformedShape(shape);
颜色的随机分配问题:
TWaverUtil.getRandomAlphaColor(),
透明度设置:
int a1 = mPointColor.getAlpha();
int a2 = mBackgroundColor.getAlpha();
return ( ( (a1 & a2) == 0xff) ? OPAQUE : TRANSLUCENT);
附带上比较全的代码,牛人手下留情啊
分享到:
相关推荐
有限元二维静力计算程序,采用四节点线性单元,可以显示变形和应力云图。
使用距离反比插值函数实现插值,绘制不规则区域的云图
中国云图管理程序中国云图管理程序中国云图管理程序中国云图管理程序中国云图管理程序中国云图管理程序中国云图管理程序中国云图管理程序中国云图管理程序中国云图管理程序中国云图管理程序中国云图管理程序中国云图...
三维有限元静力问题分析程序,用Matlab编写,采用20节点3维单元,可绘制应力云图。
功能介绍: 风云二号卫星云图,实现了每半小时获取卫星图,获取云图列表,可自动播放,有12小时,与24小时两种选择。 注意: 开发环境为Visual Studio 2013
matlab开发的温度云图程序,等值线,插值,伪彩色,图例
VTK云图代码,可以显示彩色云图,已用 VC++调试通过。
VS2008环境下C#云图绘制案例,大家一起学习交流一下!
matlab 画云图
用python语言制作天气预报气象云图.全圆盘真彩图
本代码功能为卫星云图的伪彩色处理,原图和处理后的图片也在压缩包里
C#绘制三维(3D)云图,包含完整VS项目工程、源代码和测试数据,可直接运行看效果。
用WPF做的几个云图样式控件,没什么别的功能,只是为了方便使用。
origin做三维云图步骤说明.pdf
Tecplot从散点图生成2D云图的方法
利用ppt进行汇报时,如果能把一些云图的动画放在PPT里面效果会非常好。比如,想绘制某个区域的云图动画,但区域又有一个边界,而且可能不规则。本代码功能在于可针对矩形区域内任意外形边界,进行任意数据的云图绘制...
中国云图 CHM格式, 各类云的中文名、简写、概述等,还有图片介绍,可以最短时间内认识云状。
电机效率云图绘制,导入根据三维插值得到的数据
Unity3d使用Meth实现温度云图,看了网上有几个使用Shader实现的温度云图,基本都是写死的,并且代码都有毛病出不来效果,所以就用Meth实现了一个,温度点位能动态。行列动态创建,只需要自己给一个数值。创建一个空...