一种基于三阶Bezier曲线的伪装迷彩自动生成方法_2

文档序号:9249718阅读:来源:国知局
序列中的斑点,根据当前大型斑点的位置、缩放比例与存储序列中斑点 的位置、缩放比例,求得当前大型斑点相对于存储序列中斑点的中屯、相对坐标,计算公式如 下:
[0049]1、x_big是大斑点的中屯、X坐标,y_big是大斑点的中屯、y坐标,
[0050] 2、i是当前遍历到的小斑点序号,
[0051]3、x_small山,是当前小斑点的X中屯、坐标,y_small山是当前小斑点的y中屯、 坐标,
[0化引 4、rotation[i]当前小斑点的旋转角度,stretch[t]当前小斑点的缩放比例 [0化引 5、x_get,y_get是大小斑点的中屯、相对坐标
[0054] 6、PI是圆周率31
[0055]贝Ij ;中屯、相对坐标x_get, y_get为;
[0056] x_get = (x_big-x_small[i])*cos(-rotation[i]/180*PI)/stretch[i]
[0057] -(y_big-y_small [i])*sin(-rotation[i]/180冲I)/stretch[i];
[0058] y = (x_big-x_small[i])*sin(-rotation[i]/180冲I)/stretch[i]
[0059] +(y_big-y_small[i])*cos(-rotation[i]/180冲I)/stretch[i];
[0060] 对大型斑点的每个关键点进行遍历,根据当前大型斑点对存储序列中斑点的相对 坐标,检测有没有关键点包含在存储序列的斑点中,如果对当前斑点的所有关键点,每个关 键点都没有包含在存储序列的斑点中,则表明当前大型斑点没有覆盖画布上的任何一个斑 点,将该大型斑点加入到存储序列中。
[0061] (6. 4)按照大型斑点的随机方式,分别随机中型斑点和小型斑点。
[0062] (6. 5)本策略执行时间:长10米,宽3米,高3米的车所对应的五视图画布,生成 时间大约为30-60秒。
[0063] 步骤(7),计算每个迷彩斑点W及未被迷彩斑点覆盖的画布所占整个画布的面积 比:
[0064] 将整个画布划分为大小均匀的小正方形,并计算出每一个小正方形所占整个画布 的比例(假设为S)。对所有小正方形进行遍历,对当前遍历到的小矩形块与迷彩图案上的 所有斑点进行碰撞检测,如果小正方形块与某个斑点有交集,则该斑点所占整个斑点的面 积比增加S,继续遍历下一个小正方形块,直到所有正方形块遍历完全。用1减去每个斑点 所占的面积比,则为未被斑点覆盖的画布所占整个画布的面积比。
[00化]步骤巧),按照给定S种颜色比例,对斑点画布进行涂色:
[0066] 给定的颜色比例分别为;6:4、3:3:2、2:2:2:3。W颜色比2:2:3:3来讲解按照给颜 色积比对斑点画布进行涂色的思想:
[0067] 如果颜色比要求为3:3:2:2,则四种颜色在画布上所占的百分比对应为 0. 3, 0. 3, 0. 2, 0. 2。定义画布上一共有n个斑点,每个斑点面积比设为spot(t),t取值为从 1~n。假设未被斑点覆盖的画布面积比为cans,贝ij
。假设该四种颜色分 别为A、B、C、D,四种颜色当前在画布上的面积比为S(A),S炬),S(C),S值),涂色之前S(A)= 0,S炬)=0,S(C) = 0,S值)=0。
[0068] 步骤巧.1),首先将所有迷彩斑点的面积比由大到小排序。
[0069] 步骤化2),将未被斑点覆盖的画布面积比加到A颜色当前面积比中,即;S(A)= S(A)+canS,判断S(A)是否大于等于0. 3,如果大于等于,则执行8. 3,如果小于则执行8. 4。
[0070] 步骤巧.3),按斑点面积比从大到小的顺序进行遍历,索引i取值从0~n,初始为 0。
[007U步骤化3. 1)如果S炬)<0. 3,则执行;S炬)=S炬)+spota),i=i+1,否则跳转 8. 3. 2。如果i<n+l,则继续执行8. 3. 2,否则结束。
[007引步骤化3.。如果S似<0. 2,则执行;S似=S似+spota),i=i+1,否则跳转 8. 3. 3。如果i<n+l,则继续执行8. 3. 3,否则结束。
[007引步骤化3. 3)如果S值)<0. 2,则执行;S值)S值)+spot(i),i=i+1,否则跳转 8. 3. 1。如果i<n+l,则跳转到8. 3. 1,并继续执行,否则结束。
[0074] 步骤巧.4),按斑点面积比从大到小的顺序进行遍历,索引i取值从0~n,初始为 0。
[007引步骤化 4. 1)如果S(A)<0. 3,则执行;S(A) =S(A)+spot(i),i=i+1,否则跳转 8. 4. 2。如果i<n+l,则继续执行8. 4. 2,否则结束。
[0076]步骤化4.。如果S做<0.3,则执行;S做=S做+spota),i=i+1,否则跳转 8. 4. 3。如果i<n+l,则继续执行8. 4. 3,否则结束。
[0077]步骤化4.如如果S似<0.2,则执行;S似=S似+spota),i=i+1,否则跳转 8. 4. 4。如果i<n+l,则继续执行8. 4. 4,否则结束。
[007引步骤化4. 4)如果S值)<0. 2,则S执行;值)+spota),i=i+1,否则跳转8. 4. 1。 如果i<n+l,则跳转到继续执行8. 4. 1,否则结束。
[0079] 步骤(9)将绘制的迷彩图案在AutoCAD中自动重绘;
[0080] 步骤化1)将要软件中迷彩斑点的坐标转换为AutoCAD中坐标。步骤化2)用 AutoCAD中S化命令生成所有迷彩斑点在AutoCAD中的绘制命令。
[OOW] 步骤化3)最后在AutoCAD命令窗口中粘贴化2)中生成好的命令,将迷彩图案 在AutoCAD中重绘出来,实现AutoCAD图纸的自动生成。
[0082] 本发明是一种伪装迷彩自动生成的一种方式,给制作伪装迷彩的工作人员带来了 极大的便利:
[0083] W往迷彩制作人员制作迷彩,基本是手工绘制,不仅绘制速度慢,而且斑点的曲 率半径靠人眼鉴定很不准确,颜色的面积比没有办法控制在指定的比例之内,绘制出的迷 彩斑点误差大。本伪装迷彩自动生成的方式不仅把原来二十多天的工期缩短到一周之内, 而且迷彩图案的自动生成过程经过严格的科学计算,能很好的达到迷彩图案的设计要求, 能快速有效的生成迷彩图案,再把迷彩图案在=维模型上的展示,最后把迷彩图案生成为 AutoCAD图纸,具有较强的实用性,给迷彩图案制作人员带来相当大的便捷。
【附图说明】
[0084] 图1本发明中迷彩图案自动生成流程的简略图。
[0085] 图2与车辆模型相匹配的五面画布。
[0086] 图3对跨越车辆竖直方向四条侧棱的斑点,在画布上所做的处理。
[0087] 图4迷彩斑点曲线实例。
【具体实施方式】
[008引 W下对本发明所设及的其它技术作进一步说明:
[0089] 1)规定画布上的像素点与模型实际尺寸之间的比例尺定义画布上的100个像素 点与实际100cm相对应,该样就能保证按照给定的尺寸绘制出的迷彩图案,能够和实际模 型相吻合。
[0090] 2)迷彩斑点曲线的拼接(S阶Bezier曲线的拼接)
[0091] 先算出相邻原始点(用户左键点击点的点)的中点,再把相邻中点连成的线段平 移到对应的原始点,W平移后的中点作为控制点,相邻原始点为起始点画贝塞尔曲线,保证 了S阶Bezier曲线连接处的光滑。而贝塞尔曲线本身光滑,所W就把该些原始点用光滑曲 线连起来了。通过此种方式,用=阶Bezier曲线连接用户左键所点击的关键点,来模拟迷 彩图案曲线并绘制迷彩图案。实现效果如图4
[0092] 3)将2)中得到的S阶Bezier曲线首尾拼接,便得到光滑闭合的S阶Bezie
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1