Flash 与分布学构想:圆弧分布

本文介绍了一种使用三角函数计算圆弧分布坐标的图形设计方法,并通过实例演示了如何将文字沿弧线排列,展示了从数学原理到实际应用的全过程。

圆弧分布是依据圆弧的特性所做出的一种分布设计,利用弧线的坐标,我们让我们希望的对象放置在弧线点上。通过弧线的特性结合,让我们分布的图形呈现弧线的效果。

为了求出弧线,可以首先设置弧线两端的角度,通过这两个角度,求出弧线的点,根据我们喜欢的形状进行分布图形。

在这个实验当中,让一段文字呈现一个弧形效果,我们首先求出他们所在的坐标点。再让这些文字赋予他们x和y坐标,这样,圆弧分布就可以完成了。

他可以看作是圆形分布的其中一部分。利用三角函数求出曲线上的点,然后赋予他们的位置,这样就能够体现这个设计的有趣地方。

不妨试试。

package { //弧线分布 import flash.display.Sprite; import flash.events.*; import flash.geom.Point; import flash.display.BitmapData; import flash.text.*; import flash.display.Bitmap; import flash.display.Shape; public class Main extends Sprite { private var str:String="祝各位朋友元宵节快乐阿"; public function Main() { init(11); } private function init(n:int):void { var posArray:Array=getPosArray(20,270,150,n);//获取对应的坐标值 for(var i:int=0;i<n;i++) { var textfield:TextField=new TextField(); textfield.autoSize=TextFieldAutoSize.LEFT; textfield.defaultTextFormat=new TextFormat("Arail",20,0x000000,true); textfield.text=str.charAt(i); //创建位图,用于复制文本 var bitmapData:BitmapData=new BitmapData(textfield.textWidth,textfield.textHeight,true,0x0); bitmapData.draw(textfield); var fontBitmap:Bitmap=new Bitmap(bitmapData,"auto",true); fontBitmap.x=-fontBitmap.width/2; fontBitmap.y=-fontBitmap.height/2; var contain:Sprite=new Sprite(); contain.addChild(fontBitmap); contain.x=stage.stageWidth/2+posArray[i].x; contain.y=stage.stageHeight/2+posArray[i].y; contain.rotation=getCircle_K(posArray[i].angle); if(-posArray[i].angle*180/Math.PI>180)contain.scaleX=contain.scaleY=-1; //底圆 var circle:Shape=new Shape(); circle.graphics.lineStyle(0); circle.graphics.beginFill(0x80FF00); circle.graphics.drawCircle(0,0,20); circle.graphics.endFill(); circle.x=contain.x; circle.y=contain.y; addChild(circle); addChild(contain); } } //返回坐标位置 private function getPosArray(startAngle:Number,endAngle:Number,radius:Number,n:uint):Array { var posArray:Array=[]; if(n<=1) return null; var perAngle:Number=(endAngle-startAngle)/(n-1); for (var i:int=0; i<=n; i++) { var px:Number=radius*Math.cos(-(i*perAngle+startAngle)*Math.PI/180); var py:Number=radius*Math.sin(-(i*perAngle+startAngle)*Math.PI/180); var args:Object={x:px,y:py,angle:-(i*perAngle+startAngle)*Math.PI/180}; posArray.push(args); } return posArray; } //获取切线角度 private function getCircle_K(angle:Number):Number { var px:Number=Math.cos(angle); var py:Number=Math.sin(angle); var k:Number=- px / py; return Math.atan(k) * 180 / Math.PI; } } }

内容概要:本文提出了一种基于融合鱼鹰算法和柯西变异的改进麻雀优化算法(OCSSA),用于优化变分模态分解(VMD)的参数,进而结合卷积神经网络(CNN)双向长短期记忆网络(BiLSTM)构建OCSSA-VMD-CNN-BILSTM模型,实现对轴承故障的高【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大数据】(Matlab代码实现)精度诊断。研究采用西储大公开的轴承故障数据集进行实验验证,通过优化VMD的模态数和惩罚因子,有效提升了信号分解的准确性稳定性,随后利用CNN提取故障特征,BiLSTM捕捉时间序列的深层依赖关系,最终实现故障类型的智能识别。该方法在提升故障诊断精度鲁棒性方面表现出优越性能。; 适合人群:具备一定信号处理、机器习基础,从事机械故障诊断、智能运维、工业大数据分析等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决传统VMD参数依赖人工经验选取的问题,实现参数自适应优化;②提升复杂工况下滚动轴承早期故障的识别准确率;③为智能制造预测性维护提供可靠的技术支持。; 阅读建议:建议读者结合Matlab代码实现过程,深入理解OCSSA优化机制、VMD信号分解流程以及CNN-BiLSTM网络架构的设计逻辑,重点关注参数优化故障分类的联动关系,并可通过更换数据集进一步验证模型泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值