如何在MAXScript中随机选择集合的百分比?

有时,你希望随机选择对象的子集来应用材质或效果。手动操作随机选择是一件麻烦的事,而且随机的效果也不理想,最好的方法是编写一个脚本来执行。以下是MAXScript随机选择函数的示例。

function getRandomFromCollection collection percentage rseed:123456789 = (seed rseed -- set the randomization seedlocal cCount = collection.count as floatlocal dec = (percentage as float) / 100.0local cuttoff = cCount * declocal results = for obj in collection where ((random 1.0 cCount) <= cuttoff) collect objresults)

你可以在任何集合上使用它,从对象选择到自定义结构数组。你可以在这样的脚本中使用它,其中objs是场景中的对象阵列,并且你希望随机选择阵列中25%的对象,以下是调用该函数的方法:

select (getRandomFromCollection objs 25 rseed:(random 1 123345678))

现在,打开MAXScript编辑器。然后将以上代码粘贴到其中,并通过单击“工具”>“计算所有”或CTRL+E来执行MAXScript。

你可以在3DMAX会话期间调用该函数。还可以将MAXScript代码扩展为一个更完整的脚本,该脚本始终调用当前场景选择中的函数,并将其绑定到菜单中的键盘快捷键或按钮。

下面是使用这个函数编写的一个简单的随机选择工具的完整代码:(将这段代码复制并保存为.ms文件,拖放到3dMax视口中执行)

rollout select_rollout "随机选择"(spinner perSpn "百分比" fieldwidth:70 range:[0,100,25]button selBtn "选择"function getRandomFromCollection collection percentage rseed:123456789 = (seed rseed -- set the randomization seedlocal cCount = collection.count as floatlocal dec = (percentage as float) / 100.0local cuttoff = cCount * declocal results = for obj in collection where ((random 1.0 cCount) <= cuttoff) collect objresults)on selBtn pressed do(select (getRandomFromCollection selection perSpn.value rseed:(random 1 123345678)))--end on)--end rolloutcreateDialog select_rollout 145 50

代码运行结果:

需要说明的是:

1.如果你想使结果保持可预测性,请传递一个静态rseed值(当前是一个动态的随机值)。

2.此函数不能保证返回指定的对象的百分比。相反,它会提供你的百分比作为一段时间的平均值。因此,如果你传递一个由100个对象组成的集合并请求25%,通常会得到的结果是25个,但有时会得到24或26个。

集合越小,百分比结果的准确性就越低;集合越大,就越准确。

3dmax随机选择工具本站下载:
https://download.csdn.net/download/mufenglaoshi/89294284

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/10144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以太网技术介绍

随着通信和计算机技术的不断发展&#xff0c;无论是骨干网还是接入网&#xff0c;以太网都已成为应用场景最多&#xff0c;应用范围最广泛的技术之一。对于初次应用以太网的读者&#xff0c;本文主要给出以太网技术的基础知识&#xff0c;并对以太网涉及的部分协议进行简要说明…

收音机套件焊接和装调的总结

很早之前买了一个小收音机&#xff0c;今天翻出来焊接上。 还好&#xff0c;质量挺好的&#xff0c;电路板没有氧化。 一。静态电流 pcb上面留有ABCD四个测电流的位置。方便调试。 焊接后&#xff0c;V1电流偏大&#xff0c;如果电流过大&#xff0c;会导致R2的压降过大&am…

GT2505HS-VTBD 三菱触摸屏手持式5.7寸型

GT2505HS-VTBD 三菱触摸屏手持式5.7寸型 GT2505HS-VTBD参数,GT2505HS-VTBD用户手册,GT2505HS-VTBD使用手册GT2505HS-VTBD参数说明&#xff1a;手持式5.7吋型&#xff0c;VGA 640*480&#xff0c;TFT彩色液晶屏,65536色,内存32MB&#xff0c;DC24V,内置以太网接口。 GT2505HS-VT…

agiletc部署

数据库创建及运行 启动命令 cd /AgileTC/case-server&& nohup mvn spring-boot:run &查看是否启动成功 http://192.168.101.:8094/case/caseList/1需要安装java javac等 一、安装java 1 安装java11 sudo yum install java-11-openjdk-devel -y2 切换到java11 …

【零基础】system generator①设置卡解析

1.在matlab中我们输入的是双精度浮点型数据&#xff0c;经过gateway后变成定点型。十六位十四个小数位&#xff0c;整个数据有十六位&#xff0c;其中十四位给了小数 2.fixed-point定点型&#xff1b;signed有符号&#xff1b;2’s comp补码 3.量化误差 truncate&#xff0c;舍…

同时安装多个nodejs版本可切换使用,或者用nvm管理、切换nodejs版本(两个详细方法)

目录 一.使用nvm的方法&#xff1a; 1.卸载nodejs 2.前往官网下载nvm 3.安装nvm 4.查看安装是否完成 5.配置路径和淘宝镜像 6.查看和安装各个版本的nodejs 7.nvm的常用命令 二.不使用nvm&#xff0c;安装多个版本&#xff1a; 1.安装不同版本的nodejs 2.解压到你想放…

Ubuntu 22.04 下,VS Code 配置 C++ 编译及 CMake

一、VS Code 安装以及 C 编译环境配置 1. 在 Ubuntu 中安装 VS Code 笔者直接在 Ubuntu Software 中心安装 VS Code。也可以从VS Code官网下载 deb&#xff0c;解压 dpkg -i 安装。 2. VS Code 中配置 g/gcc 1) 安装 C/C 扩展 &#xff08;CtrlShiftX&#xff09; 2&#x…

差速机器人模型LQR 控制仿真(c++ opencv显示)

1 差速机器人状态方程构建 1.1差速机器人运动学模型 1.2模型线性化 1.3模型离散化 2离散LQR迭代计算 注意1&#xff1a;P值的初值为Q。见链接中的&#xff1a; 注意2&#xff1a;Q, R参数调节 注意3&#xff1a;LQR一般只做横向控制&#xff0c;不做纵向控制。LQR输出的速度…

辅助阅读代码

辅助代码工具&#xff1a; 1、sourcetrail 2、valgrind &#xff0c; qcachegrind sourcetrail&#xff0c;可以生成类图&#xff0c;以及类之间&#xff0c;函数之间的调用关系 1、安装 2、使用该工具需要使用cmake 编译一次 cmake -DCMAKE_EXPORT_COMPILE_COMMANDSON 其他…

手机同步与数据安全:让手机和电脑完美结合!

在当今这个高度信息化的社会&#xff0c;手机和电脑不仅为我们提供了丰富的信息资源&#xff0c;让我们能够随时随地获取所需的信息&#xff0c;还为我们的生活带来了极大的便利。无论是工作、学习还是娱乐&#xff0c;手机和电脑都发挥着至关重要的作用。 然而&#xff0c;随…

Paddle 实现DCGAN

传统GAN 传统的GAN可以看我的这篇文章&#xff1a;Paddle 基于ANN&#xff08;全连接神经网络&#xff09;的GAN&#xff08;生成对抗网络&#xff09;实现-CSDN博客 DCGAN DCGAN是适用于图像生成的GAN&#xff0c;它的特点是&#xff1a; 只采用卷积层和转置卷积层&#x…

优先队列——大小堆—— priority_queue

本人博客主页 本篇博客相关博客 二叉树--讲解 文章目录 目录 文章目录 前言 一、priority_queue是什么&#xff1f; 二、priority_queue的使用 1、相关函数 2、代码使用 3、堆的插入删除 三、模拟实现 1、大框架 2、仿函数 3、向下调整 4、向下调整 总结 前言 在我们学习二叉…

免费SSL证书怎么签发

大家都知道SSL证书好&#xff0c;作用大&#xff0c;安全性高&#xff0c;能加权重&#xff0c;等保必须的参考值。但是如何选择合适且正确的证书也是至关重要的&#xff0c;网站更适合单域名证书、多域名证书、泛域名证书、还是多域名通配符证书。 首先大家要清楚&#xff0c…

网站访问提示不安全怎么办??

当网站访问时提示“不安全”&#xff0c;这通常与网站的SSL证书有关&#xff0c;或者是网站本身存在一些安全风险。以下是一些解决步骤和建议&#xff1a; 1、检查URL前缀&#xff1a;首先&#xff0c;检查URL是否以https://开头。如果仍然是http://&#xff0c;则网站没有使用…

我必须要吹一波MATLAB 2024a,太牛逼了!|福利:附安装教程及下载地址

最近逛MATLAB官网&#xff0c;发现MATLAB 2024a版本已经Pre-release了&#xff0c;翻了下release note&#xff0c;不得不感叹&#xff0c;实在是太强了&#xff01; 这次重点更新了四个工具箱&#xff1a; Computer Vision Toolbox Deep Learning Toolbox Instrument Contro…

鸿蒙内核源码分析(文件句柄篇) | 你为什么叫句柄

句柄 | handle int open(const char* pathname,int flags); ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, const void *buf, size_t count); int close(int fd);只要写过应用程序代码操作过文件不会陌生这几个函数,文件操作的几个关键步骤嘛,跟把大…

Linux开发--Bootloader应用分析

Bootloader应用分析 一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次&#xff1a; 引导加载程序。包括固化在固件( firmware )中的 boot 代码(可选)&#xff0c;和 Boot Loader 两大部分。 Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 文件系统…

大华智能物联综合管理平台 fastjson远程代码执行漏洞复现

0x01 产品简介 大华ICC智能物联综合管理平台对技术组件进行模块化和松耦合,将解决方案分层分级,提高面向智慧物联的数据接入与生态合作能力。 0x02 漏洞概述 由于大华智能物联综合管理平台使用了存在漏洞的FastJson组件,未经身份验证的攻击者可利用 /evo-runs/v1.0/auths/…

【Qt】界面定制艺术:光标(cursor)、字体(font)、提示(toolTip)、焦点(focusPolicy)与样式表(styleSheet)的深度探索

文章目录 前言&#xff1a;1. cursor: 设置按钮的光标2. front&#xff1a;设置字体3. toolTip: 鼠标悬停提示4. focusPolicy&#xff1a;设置控件获取到焦点的策略5. styleSheet : 样式表总结&#xff1a; 前言&#xff1a; 在现代软件开发中&#xff0c;用户界面(UI)的设计和…

【MySQL 数据宝典】【事务锁】- 002 事务控制的演进

一、事务处理思路 1.1 排队 排队处理是事务管理最简单的方法&#xff0c;就是完全顺序执行所有事务的数据库操作&#xff0c;不需要加锁&#xff0c;简单的说就是全局排队。序列化执行所有的事务单元&#xff0c;数据库某个时刻只处理一个事务操作&#xff0c;特点是强一致性…