因素的随机选择,这里只是处理了 20 % 也是80 %
2011-04-22 13:29
302 查看
-----还有一个就是随机的选择面熟
----这个思路相对明确一些,判断是不是 poly mrsh 到面层级
---2. 收集所有面的数组。这里有两种情况
---3我要随机的选择100 个面,还有就是我要递增的选择100 个面。
---我是这样随即。random 1 到面熟。 选择多少个进行多少次,加到数组
----并且我们还不能叫数组有重复的。就好了。
---在下面由一个“变体”的功能,其实不错。我是这样考虑的。
---1.知道poly的因素数,判断面数所在因素数,这样在选择相应的因素数, 这里面可能有多面在通一个因素上
---2.这样这时要叫因素具有唯一性就好。
--下面开始写随即函数。
--非常重要的一点。随即函数 在在poly层进行。并且是在基层处理。在这个基层之上
-- 随机的 点 线 面 。 就是说 如果我预先选择了 点 线 面 就是在选择的基层上进行随机的处理,如果没有就是全局的处理。
-- 其实还有一点就是因素的随机。这个在后来也是很重要的。这个要记住。
--在选择里我加入10 % 处理,但是一定到时候要转整数。因为边面点,不存在. 几的问题。
fn poly_random_type input_poly type count_t percentage = --函数是 随机选择因素的。type 是因素的种类 (暂时不考虑因素的最后一个)
--count_t 按数量 percentage 按百分比。 input_poly 输入者
(
case of ---这个是我的手动的处理。所以这里面我只列举3 中情况进行处理。
(
(type == "vertex"): (
local vertes_count__ =#()
------这里面由两种选择,数量的选择 ,还有就是 % 的选择,到最后我倒ui中要最一个事件
----当count_t percentage 同时不为零,报错机制触发,当 count_t ==0 那么 percentage==10 当percentage ==0 那么count_t ==1
----选择好选择类型在,处理,我是当前选择了。还是没有选择,进行处理。
---先做数量的选择
if percentage ==0 and count_t ==0 then return false
if percentage !=0 and count_t !=0 then return false ---这样的报错机制就好了。
if percentage ==0 and count_t !=0 then -----拾取个数的情况。
(
local Back_Verts_array
---查看当前选择的点,分两种情况进行。数组为空与不为空,分为全局与局部的关系。
total_Verts_array = polyop.getNumVerts input_poly
---全局顶点数,和当前选择的数组。
if count_t >total_Verts_array then count_t =total_Verts_array ------保证输入的个数不超标
Back_Verts_array = polyop.getVertSelection input_poly
if (Back_Verts_array as array) .count ==0 then --- 全局选择
(
for i in 1 to count_t do
(
---这里要加入数组唯一化机制
random_count= random 1 total_Verts_array
if findItem vertes_count__ random_count ==0 then
(
---因为我没有循环点。所以不用加入 undefined 机制。 在询问面 返回点的函数时,有时面本来是多了,但是在循环面找点是 就是
---undefined 这个自己一定要记住。
append vertes_count__ random_count
)---end if finditem
)---end for total
)---end back
if( Back_Verts_array as array) .count !=0 then --- 全局选择
(
Back_Verts_array=(Back_Verts_array as array) --这中方式其实就是临时的被改。
if count_t > Back_Verts_array.count then count_t =Back_Verts_array.count ------保证输入的个数不超标
for i in 1 to count_t do --同是给输入的数量一个定义
(
random_count= Back_Verts_array [ (random 1 Back_Verts_array.count )]----局部内的点数。
if findItem vertes_count__ random_count ==0 then
(
---因为我没有循环点。所以不用加入 undefined 机制。 在询问面 返回点的函数时,有时面本来是多了,但是在循环面找点是 就是
---undefined 这个自己一定要记住。
append vertes_count__ random_count
)---end if finditem
)---end for i in 1 to count_t ..
)----end if BACK
)---end if percenntage
if percentage !=0 and count_t ==0 then ----%比的情况,这个很好。
(
---% 情况其实可以和之前的一模一样,也是吧% 的数组线算出来。
local Back_Verts_array ,total_Verts_array
---查看当前选择的点,分两种情况进行。数组为空与不为空,分为全局与局部的关系。
total_Verts_array = polyop.getNumVerts input_poly
---全局顶点数,和当前选择的数组。
/*
percentage_count= total_Verts_array *percentage /100
percentage_count = percentage_count as integer
if percentage_count >total_Verts_array then percentage_count =total_Verts_array ------保证输入的个数不超标
*/
Back_Verts_array = polyop.getVertSelection input_poly
if (Back_Verts_array as array) .count ==0 then --- 全局选择
(
percentage_count= total_Verts_array *percentage /100
percentage_count = percentage_count as integer
if percentage_count >total_Verts_array then percentage_count =total_Verts_array ------保证输入的个数不超标
local true_tt =true
while ( true_tt)do
(
--for i in 1 to total_Verts_array do --因为我在上面进行了数量的把控 所以这里面是在真个中循环
---我明白了这里就不用加循环了。 while本身就是循环 所以这里就这样就慢死了
(
---这里要加入数组唯一化机制
random_count= random 1 total_Verts_array
---这里面我要说下,因为是100 % 但是由于随机 经常取一样的值。就是100% 的点中 在跑去相同,所以会出现 不满的情况。
--我应该最死循环, 知道数组中的数量 符合他的 % 分数。
if findItem vertes_count__ random_count ==0 then
(
---因为我没有循环点。所以不用加入 undefined 机制。 在询问面 返回点的函数时,有时面本来是多了,但是在循环面找点是 就是
---undefined 这个自己一定要记住。
append vertes_count__ random_count
)---end if finditem
)---end for total
if (vertes_count__.count ==percentage_count ) then
(
true_tt=false
)
)---end while
)---end back
-----------------------2011.4.22 过了一天接着写
if (Back_Verts_array as array) .count !=0 then --- 全局选择
(
percentage_count= ((Back_Verts_array as array) .count) *percentage /100
percentage_count = percentage_count as integer
if percentage_count >((Back_Verts_array as array) .count) then percentage_count =((Back_Verts_array as array) .count) ------保证输入的个数不超标
local true_tt =true
while ( true_tt)do
(
--for i in 1 to total_Verts_array do --因为我在上面进行了数量的把控 所以这里面是在真个中循环
---我明白了这里就不用加循环了。 while本身就是循环 所以这里就这样就慢死了
(
---这里要加入数组唯一化机制
-- random_count= random 1 total_Verts_array
Back_Verts_array=Back_Verts_array as array ---
---2011.4.22 测试不行是,是忘了转会数组,这个很重要。
random_count= Back_Verts_array [ (random 1 Back_Verts_array.count )]----局部内的点数。
---这里面我要说下,因为是100 % 但是由于随机 经常取一样的值。就是100% 的点中 在跑去相同,所以会出现 不满的情况。
--我应该最死循环, 知道数组中的数量 符合他的 % 分数。
if findItem vertes_count__ random_count ==0 then
(
---因为我没有循环点。所以不用加入 undefined 机制。 在询问面 返回点的函数时,有时面本来是多了,但是在循环面找点是 就是
---undefined 这个自己一定要记住。
append vertes_count__ random_count
)---end if finditem
)---end for total
if (vertes_count__.count ==percentage_count ) then
(
true_tt=false
)
)---end while
)----end back
)--end if percentage
polyop.setVertSelection input_poly vertes_count__
)--end ()
(type == "edge"): (
)
(type == "polygon"):(
)
)--- end case of
)----end fn
---这里的处理其实是这样的。分为三个元素进行随机,每个元素又分 按数量选择 还是按百分比选择。
每种选择方式又分 局部选择还是全局选择。这些都很重要。
----这个思路相对明确一些,判断是不是 poly mrsh 到面层级
---2. 收集所有面的数组。这里有两种情况
---3我要随机的选择100 个面,还有就是我要递增的选择100 个面。
---我是这样随即。random 1 到面熟。 选择多少个进行多少次,加到数组
----并且我们还不能叫数组有重复的。就好了。
---在下面由一个“变体”的功能,其实不错。我是这样考虑的。
---1.知道poly的因素数,判断面数所在因素数,这样在选择相应的因素数, 这里面可能有多面在通一个因素上
---2.这样这时要叫因素具有唯一性就好。
--下面开始写随即函数。
--非常重要的一点。随即函数 在在poly层进行。并且是在基层处理。在这个基层之上
-- 随机的 点 线 面 。 就是说 如果我预先选择了 点 线 面 就是在选择的基层上进行随机的处理,如果没有就是全局的处理。
-- 其实还有一点就是因素的随机。这个在后来也是很重要的。这个要记住。
--在选择里我加入10 % 处理,但是一定到时候要转整数。因为边面点,不存在. 几的问题。
fn poly_random_type input_poly type count_t percentage = --函数是 随机选择因素的。type 是因素的种类 (暂时不考虑因素的最后一个)
--count_t 按数量 percentage 按百分比。 input_poly 输入者
(
case of ---这个是我的手动的处理。所以这里面我只列举3 中情况进行处理。
(
(type == "vertex"): (
local vertes_count__ =#()
------这里面由两种选择,数量的选择 ,还有就是 % 的选择,到最后我倒ui中要最一个事件
----当count_t percentage 同时不为零,报错机制触发,当 count_t ==0 那么 percentage==10 当percentage ==0 那么count_t ==1
----选择好选择类型在,处理,我是当前选择了。还是没有选择,进行处理。
---先做数量的选择
if percentage ==0 and count_t ==0 then return false
if percentage !=0 and count_t !=0 then return false ---这样的报错机制就好了。
if percentage ==0 and count_t !=0 then -----拾取个数的情况。
(
local Back_Verts_array
---查看当前选择的点,分两种情况进行。数组为空与不为空,分为全局与局部的关系。
total_Verts_array = polyop.getNumVerts input_poly
---全局顶点数,和当前选择的数组。
if count_t >total_Verts_array then count_t =total_Verts_array ------保证输入的个数不超标
Back_Verts_array = polyop.getVertSelection input_poly
if (Back_Verts_array as array) .count ==0 then --- 全局选择
(
for i in 1 to count_t do
(
---这里要加入数组唯一化机制
random_count= random 1 total_Verts_array
if findItem vertes_count__ random_count ==0 then
(
---因为我没有循环点。所以不用加入 undefined 机制。 在询问面 返回点的函数时,有时面本来是多了,但是在循环面找点是 就是
---undefined 这个自己一定要记住。
append vertes_count__ random_count
)---end if finditem
)---end for total
)---end back
if( Back_Verts_array as array) .count !=0 then --- 全局选择
(
Back_Verts_array=(Back_Verts_array as array) --这中方式其实就是临时的被改。
if count_t > Back_Verts_array.count then count_t =Back_Verts_array.count ------保证输入的个数不超标
for i in 1 to count_t do --同是给输入的数量一个定义
(
random_count= Back_Verts_array [ (random 1 Back_Verts_array.count )]----局部内的点数。
if findItem vertes_count__ random_count ==0 then
(
---因为我没有循环点。所以不用加入 undefined 机制。 在询问面 返回点的函数时,有时面本来是多了,但是在循环面找点是 就是
---undefined 这个自己一定要记住。
append vertes_count__ random_count
)---end if finditem
)---end for i in 1 to count_t ..
)----end if BACK
)---end if percenntage
if percentage !=0 and count_t ==0 then ----%比的情况,这个很好。
(
---% 情况其实可以和之前的一模一样,也是吧% 的数组线算出来。
local Back_Verts_array ,total_Verts_array
---查看当前选择的点,分两种情况进行。数组为空与不为空,分为全局与局部的关系。
total_Verts_array = polyop.getNumVerts input_poly
---全局顶点数,和当前选择的数组。
/*
percentage_count= total_Verts_array *percentage /100
percentage_count = percentage_count as integer
if percentage_count >total_Verts_array then percentage_count =total_Verts_array ------保证输入的个数不超标
*/
Back_Verts_array = polyop.getVertSelection input_poly
if (Back_Verts_array as array) .count ==0 then --- 全局选择
(
percentage_count= total_Verts_array *percentage /100
percentage_count = percentage_count as integer
if percentage_count >total_Verts_array then percentage_count =total_Verts_array ------保证输入的个数不超标
local true_tt =true
while ( true_tt)do
(
--for i in 1 to total_Verts_array do --因为我在上面进行了数量的把控 所以这里面是在真个中循环
---我明白了这里就不用加循环了。 while本身就是循环 所以这里就这样就慢死了
(
---这里要加入数组唯一化机制
random_count= random 1 total_Verts_array
---这里面我要说下,因为是100 % 但是由于随机 经常取一样的值。就是100% 的点中 在跑去相同,所以会出现 不满的情况。
--我应该最死循环, 知道数组中的数量 符合他的 % 分数。
if findItem vertes_count__ random_count ==0 then
(
---因为我没有循环点。所以不用加入 undefined 机制。 在询问面 返回点的函数时,有时面本来是多了,但是在循环面找点是 就是
---undefined 这个自己一定要记住。
append vertes_count__ random_count
)---end if finditem
)---end for total
if (vertes_count__.count ==percentage_count ) then
(
true_tt=false
)
)---end while
)---end back
-----------------------2011.4.22 过了一天接着写
if (Back_Verts_array as array) .count !=0 then --- 全局选择
(
percentage_count= ((Back_Verts_array as array) .count) *percentage /100
percentage_count = percentage_count as integer
if percentage_count >((Back_Verts_array as array) .count) then percentage_count =((Back_Verts_array as array) .count) ------保证输入的个数不超标
local true_tt =true
while ( true_tt)do
(
--for i in 1 to total_Verts_array do --因为我在上面进行了数量的把控 所以这里面是在真个中循环
---我明白了这里就不用加循环了。 while本身就是循环 所以这里就这样就慢死了
(
---这里要加入数组唯一化机制
-- random_count= random 1 total_Verts_array
Back_Verts_array=Back_Verts_array as array ---
---2011.4.22 测试不行是,是忘了转会数组,这个很重要。
random_count= Back_Verts_array [ (random 1 Back_Verts_array.count )]----局部内的点数。
---这里面我要说下,因为是100 % 但是由于随机 经常取一样的值。就是100% 的点中 在跑去相同,所以会出现 不满的情况。
--我应该最死循环, 知道数组中的数量 符合他的 % 分数。
if findItem vertes_count__ random_count ==0 then
(
---因为我没有循环点。所以不用加入 undefined 机制。 在询问面 返回点的函数时,有时面本来是多了,但是在循环面找点是 就是
---undefined 这个自己一定要记住。
append vertes_count__ random_count
)---end if finditem
)---end for total
if (vertes_count__.count ==percentage_count ) then
(
true_tt=false
)
)---end while
)----end back
)--end if percentage
polyop.setVertSelection input_poly vertes_count__
)--end ()
(type == "edge"): (
)
(type == "polygon"):(
)
)--- end case of
)----end fn
---这里的处理其实是这样的。分为三个元素进行随机,每个元素又分 按数量选择 还是按百分比选择。
每种选择方式又分 局部选择还是全局选择。这些都很重要。
相关文章推荐
- java批量转换图片格式,这里只是实现了更新后缀格式的,图片大小未做处理
- 很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项(我刚学会的!)
- scope 对象在 AngularJS 中充当数据模型的作用,也就是一般 MVC 框架中 Model 得角色.但又不完全与通常意义上的数据模型一样,因为 $scope 并不处理和操作数据,它只是建立了
- Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多个submit
- SVG开发包, 20 个有用的 SVG 工具,提供更好的图像处理
- error LNK2026: 模块对于 SAFESEH 映像是不安全的 分类: 错误处理 2013-09-23 09:26 6674人阅读 评论(6) 收藏 举报 目录(?)[+] 今天使用VS20
- CNTK API文档翻译(20)——GAN处理MSIST数据基础
- 贴出使用dojo做的经典后台管理页面,这里只是个框架
- 图像处理中的数学原理详解20——主成分变换(PCA)
- 1031. Hello World for U (20)【字符串处理】——PAT (Advanced Level) Practise
- 1050. String Subtraction (20)【字符串处理】——PAT (Advanced Level) Practise
- 80/20定律:在生产环境中使用容器所能带来的收益
- 在软件开发中应用80:20原则
- 我只是不擅长处理爱情,可是我可以努力
- C语言字符串库函数的实现也是笔试题常考的题目,以下代码没有严格测试,只是简单的实现:
- Linux基础(20)文本处理三剑客之awk
- PHP对大小写敏感问题的处理比较乱,写代码时可能偶尔出问题,所以这里总结一下。以便用到的出现错误
- 只是一个文件节点类为了项目的数据处理
- 20 款处理键盘事件的 JavaScript 库