objectRand物体随机排列.txt

本文介绍了一个Maya脚本,用于实现所选3D对象的随机位置、旋转和缩放,支持等比例缩放选项,并提供了应用、重置和关闭按钮。
// 物体随机排列; 
// by居燕虹 2004.3
global proc objectRand()
{
string $selectObject[]=`ls-sl`;
int$amount=size($selectObject) ;
if($amount==0) error"Please select the object ";
if(`window-exists objectRand`)
   {
    deleteUI objectRand;
   }
 window-title"obiect rand"-h500objectRand;
 columnLayout;
 text-l" ";
 frameLayout-label" Translate"-mh10-mw5-labelAlign"center"-borderStyle"etchedIn";
  columnLayout-columnAttach"left"5-adjustableColumntrue-h10namecolumnLayout;  
    attrFieldSliderGrp-cat1"left"20-cw130-cat2"left"30-cw2110-min0-max10-fmn0-fmx100-label"Tx"-at ($selectObject[0]+".tx") tx;
    attrFieldSliderGrp-cat1"left"20-cw130-cat2"left"30-cw2110-min0-max10-fmn0-fmx100-label"Ty"-at ($selectObject[0]+".ty") ty;
    attrFieldSliderGrp-cat1"left"20-cw130-cat2"left"30-cw2110-min0-max10-fmn0-fmx100-label"Tz"-at ($selectObject[0]+".tz") tz;
    setParent ..;
    setParent ..;
 frameLayout-label" Rotate"-mh10-mw5-labelAlign"center"-borderStyle"etchedIn";
  columnLayout-columnAttach"left"5-adjustableColumntrue-h10namecolumnLayout;
    attrFieldSliderGrp-cat1"left"20-cw130-cat2"left"30-cw2110-min0-max360-label"Rx"-at ($selectObject[0]+".rx") rx;
    attrFieldSliderGrp-cat1"left"20-cw130-cat2"left"30-cw2110-min0-max360-label"Ry"-at ($selectObject[0]+".ry") ry;
    attrFieldSliderGrp-cat1"left"20-cw130-cat2"left"30-cw2110-min0-max360-label"Rz"-at ($selectObject[0]+".rz") rz;
    setParent ..;
    setParent ..;
 frameLayout-label" Scale"-mh10-mw5-labelAlign"center"-borderStyle"etchedIn";
  columnLayout-columnAttach"left"5-adjustableColumntrue-h10namecolumnLayout;
    attrFieldSliderGrp-cat1"left"20-cw130-cat2"left"30-cw2110-min0-max1-fmn0-fmx10-label"Sx"-at ($selectObject[0]+".sx") sx;
    attrFieldSliderGrp-cat1"left"20-cw130-cat2"left"30-cw2110-min0-max1-fmn0-fmx10-label"Sy"-at ($selectObject[0]+".sy") sy;
    attrFieldSliderGrp-cat1"left"20-cw130-cat2"left"30-cw2110-min0-max1-fmn0-fmx10-label"Sz"-at ($selectObject[0]+".sz") sz;   
    rowColumnLayout-numberOfColumns3-columnWidth1150-columnWidth2150;
    checkBox-label" 等比"-w10scaletmp;
    setParent ..;
    setParent ..;
    setParent ..;
    setParent ..;
  rowLayout-numberOfColumns4-w20;
    string $b1, $b1, $b3;
    $b1=` button-w95-c randdjuyh-l" Apply"`;
    $b2=` button-w95-c resetjuyh-l" Reset"`;
    $b3=` button-w95-c"deleteUI objectRand"-l" Close"`;    
 showWindow;
}
global proc randdjuyh()
 string $selectObject[]=`ls-sl`;
 int$amount=size($selectObject) ;
 if($amount==0) error"Please select the object ";
  float$ttx=`getAttr ($selectObject[0]+".tx")`;
  float$tty=`getAttr ($selectObject[0]+".ty")`;
  float$ttz=`getAttr ($selectObject[0]+".tz")`;
  float$trx=`getAttr ($selectObject[0]+".rx")`;
  float$try=`getAttr ($selectObject[0]+".ry")`;
  float$trz=`getAttr ($selectObject[0]+".rz")`;
  float$tsx=`getAttr ($selectObject[0]+".sx")`;
  float$tsy=`getAttr ($selectObject[0]+".sy")`;
  float$tsz=`getAttr ($selectObject[0]+".sz")`;
 for($i=0;$i<$amount;$i++)
 {
  float$tx=rand(-$ttx,$ttx);
  float$ty=rand(-$tty,$tty);
  float$tz=rand(-$ttz,$ttz);
  float$rx=rand(-$trx,$trx);
  float$ry=rand(-$try,$try);
  float$rz=rand(-$trz,$trz);
  float$sx;
  float$sy;
  float$sz;
  $bol=`checkBox-q-value scaletmp`;
  if($bol==0)
   { 
      if($tsx==1)
        $sx=$tsx; 
      else
        $sx=rand((1-$tsx),(1+$tsx));
      if($tsy==1)
        $sy=$tsy; 
      else
        $sy=rand((1-$tsy),(1+$tsy));
      if($tsz==1)
        $sz=$tsz; 
      else
        $sz=rand((1-$tsz),(1+$tsz));
   }
  else
   { 
      if($tsx==1) 
      $sz=$sy=$sx=$tsx;
      else
      $sz=$sy=$sx=rand((1-$tsx),(1+$tsx));
   }
  move-r $tx $ty $tz $selectObject[$i];
  rotate-r $rx $ry $rz $selectObject[$i];
  scale-a $sx $sy $sz $selectObject[$i];
 }
}
global proc resetjuyh()
{
    string $selectObject[]=`ls-sl`;
    makeIdentity-applytrue-t1-r1-s1$selectObject[0];
}
objectRand;




转载于:https://www.cnblogs.com/xe2011/archive/2012/06/05/2535582.html

【超级棒的算法改进】融合鱼鹰和柯西变异的麻雀优化算法研究(Matlab代码实现)内容概要:本文介绍了一种融合鱼鹰优化算法(BKA)和柯西变异策略的改进型麻雀优化算法(OCSSA),旨在提升传统麻雀搜索算法在寻优精度、收敛速度和避免陷入局部最优方面的能力。该改进算法通过引入鱼鹰算法的全局探索机制和柯西变异的局部开发能力,增强了算法的搜索性能,并将其应用于优化VMD参数以分解信号,进而结合CNN-BiLSTM神经网络实现轴承故障诊断。文中提供了完整的Matlab代码实现,涵盖从算法设计、参数优化到故障分类的全过程,展示了其在西储大学轴承数据集上的优异表现。此外,文档还列举了多个基于智能优化算法的应用案例,如神经网络回归预测、微电网多目标调度、储能选址定容等,突出了该方法的通用性和扩展性。 适合人群:具备一定Matlab编程基础和优化算法背景的研究生、科研人员及工程技术人员,尤其适用于从事智能算法改进、故障诊断、信号处理及相关领域研究的专业人士。 使用场景及目标:① 改进现有元启发式优化算法(如SSA)以提高其性能;② 将优化算法应用于实际工程问题,如机械故障诊断、电力系统优化、神经网络超参数调优等;③ 学习如何将优化算法与深度学习模型(如CNN、BiLSTM)结合构建端到端的智能诊断系统。 阅读建议:建议读者结合提供的Matlab代码逐模块理解算法实现细节,重点关注鱼鹰行为机制与柯西变异的融合策略及其在VMD参数寻优中的作用;同时可参考文中列出的其他应用案例,拓展思路,将该优化框架迁移到自身研究领域中进行实验验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值