发明内容
本发明提供了一种基于服装圆弧曲线的离散化参数绘图方法,解决相关技术中存在的曲线绘图不具有通用性的问题。
作为本发明的一个方面,提供一种基于服装圆弧曲线的离散化参数绘图方法,其中,包括:
获取圆弧的基本参数,所述圆弧的基本参数根据量体数据确定;
根据所述圆弧的基本参数确定所述圆弧所在的圆的圆心位置坐标;
根据所述圆弧的圆心位置坐标对所述圆弧进行移动,并对移动后的圆弧进行离散化处理,得到多个离散化后的圆弧点坐标;
对所述离散化后的圆弧点坐标插入多义线坐标矩阵;
根据插入多义线坐标矩阵后的圆弧点坐标绘制离散化的圆弧的多义线图形;
向数控裁剪设备输出所述离散化的圆弧的多义线图形。
进一步地,所述圆弧的基本参数包括:圆弧所在的多义线坐标矩阵、圆弧所在的多义线的第n段位置和圆弧凸度。
进一步地,所述根据所述圆弧的基本参数确定所述圆弧所在的圆的圆心位置坐标,包括:
根据所述圆弧的基本参数计算所述圆弧对应的圆心角;
提取所述圆弧的起点坐标和终点坐标;
根据所述圆弧的起点坐标和终点坐标计算所述圆弧的圆弧弦长;
根据所述圆心角计算所述圆弧的半径;
根据所述圆弧的起点坐标、终点坐标、圆弧弦长和圆弧的半径确定所述圆心位置坐标。
进一步地,所述根据所述圆弧的基本参数计算所述圆弧对应的圆心角,包括:
根据所述圆弧凸度计算所述圆弧对应的圆心角。
进一步地,所述提取所述圆弧的起点坐标和终点坐标,包括:
根据所述圆弧所在的多义线的第n段位置提取所述圆弧的起点坐标和终点坐标。
进一步地,所述根据所述圆弧的起点坐标、终点坐标、圆弧弦长和圆弧的半径确定所述圆心位置坐标,包括;
以所述圆弧的起点坐标为圆心,以所述圆弧的半径为半径绘制第一圆;
以所述圆弧的终点坐标为圆心,以所述圆弧的半径为半径绘制第二圆,所述第二圆与所述第一圆产生第一交点和第二交点;
以所述第一交点为圆心,以所述圆弧的半径为半径绘制第一圆弧,所述第一圆弧为凸圆弧,对应正值的圆弧凸度;
以所述第二交点为圆心,以所述圆弧的半径为半径绘制第二圆弧,所述第二圆弧为凹圆弧,对应负值的圆弧凸度;
根据所述圆弧弦长、第一交点、第二交点以及所述圆弧凸度按照预设条件筛选后确定所述圆心位置坐标。
进一步地,所述根据所述圆弧的圆心位置坐标对所述圆弧进行移动,并对移动后的圆弧进行离散化处理,得到多个离散化后的圆弧点坐标,包括:
将所述圆弧所对应的圆心位置坐标移动至坐标原点,所述圆弧的起点坐标和终点坐标进行相应的移动,得到移动后的圆弧的起点坐标和终点坐标;
判断移动后的圆弧的起点坐标的象限位置,并计算圆弧绘图的起始角;
对移动后的圆弧进行离散化处理,得到多个离散化后的圆弧点坐标。
进一步地,所述判断移动后的圆弧的起点坐标的象限位置,并计算圆弧绘图的起始角,包括:
根据移动后的圆弧的起点坐标的x坐标与0的大小以及y坐标与0的大小判断移动后的圆弧的起点坐标的象限位置;
根据移动后的圆弧的起点坐标所在的象限位置计算圆弧绘图的起始角。
进一步地,所述对移动后的圆弧进行离散化处理,得到多个离散化后的圆弧点坐标,包括:
将所述圆弧对应的圆心角分成m份,根据所述圆心角以及所述m计算圆心角离散化的步长;
根据圆弧凸度确定圆弧离散化的方式,并根据所述起始角与所述圆心角离散化的步长确定离散化后的圆弧点坐标。
进一步地,所述根据所述圆弧的圆心位置坐标对所述圆弧进行移动,并对移动后的圆弧进行离散化处理,得到多个离散化后的圆弧点坐标,还包括:
将离散化后的圆弧点坐标均移动回原位置。
本发明提供的基于服装圆弧曲线的离散化参数绘图方法,通过采用圆弧并进行离散化处理成多个线段的方式,实现数控裁剪设备可以直接识别微线段的目的,且提高了绘制的服装版芯图的通用性,从而可以便于智能制造车间的数控裁剪设备自动编程下料,进而提高了生产效率,降低了人工成本。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互结合。下面将参考附图并结合实施例来详细说明本发明。
为了使本领域技术人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包括,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
针对服装定制中的肩膀位置以及衣领的领座位置的圆弧形,在本实施例中提供了一种基于服装圆弧曲线的离散化参数绘图方法,图1是根据本发明实施例提供的基于服装圆弧曲线的离散化参数绘图方法的流程图,如图1所示,包括:
S110、获取圆弧的基本参数,所述圆弧的基本参数根据量体数据确定;
在本发明实施例中,所述圆弧的基本参数包括:圆弧所在的多义线坐标矩阵arc_np、圆弧所在的多义线的第n段位置L_n和圆弧凸度td。
需要说明的是,所述圆弧所在的多义线坐标矩阵arc_np的数据格式为矩阵或数组;例如,arc_np=[x0,y0,z0,x1,y1,z1,...,...]。
圆弧所在的多义线的第n段位置L_n的数据格式为0或正整数,多义线的线段从第0段开始计数。
圆弧凸度td的数据格式为浮点数,圆弧凸度定义为圆弧对应的圆心角θ的0.25倍的正切值,即tan(0.25*θ),按照顺时针方向绘制多义线,正值表示圆弧向外凸,负值表示圆弧向内凹,即二者圆心坐标位置恰好关于弦长直线对称。
需要说明的是,本发明实施例中所述量体数据主要是针对量体数据中的衣领的领座和肩膀部位。
S120、根据所述圆弧的基本参数确定所述圆弧所在的圆的圆心位置坐标;
具体地,根据所述圆弧的基本参数计算所述圆弧对应的圆心角;
提取所述圆弧的起点坐标和终点坐标;
根据所述圆弧的起点坐标和终点坐标计算所述圆弧的圆弧弦长;
根据所述圆心角计算所述圆弧的半径;
根据所述圆弧的起点坐标、终点坐标、圆弧弦长和圆弧的半径确定所述圆心位置坐标。
在本发明实施例中,所述根据所述圆弧的基本参数计算所述圆弧对应的圆心角,包括:
根据所述圆弧凸度td计算所述圆弧对应的圆心角θ。
具体计算公式为:θ=atan(|td|)*4,其中,td表示圆弧凸度,例如,可取值-0.233,1,0.233等。|td|表示圆弧凸度的绝对值函数,例如:abs(-0.233)=0.233。
atan()表示反正弦函数,单位:弧度,例如atan(1)=0.785398。
θ表示圆心角,单位:弧度,例如θ=atan(abs(-0.233))×4=0.91566。
具体地,所述提取所述圆弧的起点坐标和终点坐标,包括:
根据所述圆弧所在的多义线的第n段位置L_n提取所述圆弧的起点坐标p_0和终点坐标p_1。
在本发明实施例中,如果圆弧在多义线矩阵arc_np中的位置是第L_n段,那么,圆弧的起点和终点坐标用如下公式确定:
p_0=P(arc_np[L_n×3],arc_np[L_n×3+1],0);
p_1=P(arc_np[L_n×3+3],arc_np[L_n×3+4],0);
式中,P(0,0,0)表示点元素的坐标是(0,0,0)。
在本发明实施例中,根据所述圆弧的起点坐标和终点坐标计算所述圆弧的圆弧弦长,其中圆弧弦长s_L的计算公式为:
s=p_1-p_0,
式中,s表示圆弧,是一条带方向的线段,从p_0指向p_1;
s_L表示弦长,单位一般为mm或者m。
在本发明实施例中,所述圆弧的半径r可以通过下面的计算公式确定:
r=(s_L÷2.0)÷sin(θ÷2.0);
式中,sin()表示正弦函数,输入数据单位是弧度。
在本发明实施例中,所述根据所述圆弧的起点坐标、终点坐标、圆弧弦长和圆弧的半径确定所述圆心位置坐标,包括;
以所述圆弧的起点坐标为圆心,以所述圆弧的半径为半径绘制第一圆;
以所述圆弧的终点坐标为圆心,以所述圆弧的半径为半径绘制第二圆,所述第二圆与所述第一圆产生第一交点和第二交点;
以所述第一交点为圆心,以所述圆弧的半径为半径绘制第一圆弧,所述第一圆弧为凸圆弧,对应正值的圆弧凸度;
以所述第二交点为圆心,以所述圆弧的半径为半径绘制第二圆弧,所述第二圆弧为凹圆弧,对应负值的圆弧凸度;
根据所述圆弧弦长、第一交点、第二交点以及所述圆弧凸度按照预设条件筛选后确定所述圆心位置坐标。
应当理解的是,首先以圆弧的坐标起点p_0为圆心,以r为半径画第一圆C0;然后同样的方法,以终点坐标p_1为圆心和r为半径画第二圆C1;第一圆C0与第二圆C1的交点c_ps有两个,分别以它们为圆心以r为半径可绘制两个圆弧,一个圆弧是凸圆弧,对应正值的td,另一个圆弧是凹圆弧,对应负值的td。
如果带方向圆弧s的x坐标s[0]>0,则方向圆弧向量落在y轴右侧,或者在第一象限或者在第四象限;如果s[0]<0,则方向圆弧向量落在y轴左侧,或者在第二象限或者在第三象限;如果s[0]=0,s[1]>0,圆弧向量落在+y坐标轴上,否则,落在-y坐标轴上。
由于交点c_ps有两个,所以,需再进一步根据这两个点的y坐标做选择,第一交点的y坐标是c_ps[1],第二交点的y坐标是c_ps[4],如果c_ps[1]<c_ps[4]则说明第一个圆心点在第二个圆心点的下边。
圆弧凸度td的值或者大于0或者小于0,当td>0时,按照顺时针绘制多义线,圆弧是凸圆弧;td<0时,圆弧是凹圆弧。
根据以上3个影响因素,圆心的选择分23=8种方式,取舍规则如下:
(1)如果满足条件:s[0]>0,c_ps[1]<c_ps[4],td>0;
P_c的坐标:P(c_ps[0],c_ps[1],0)。
(2)如果满足条件:s[0]>0,c_ps[1]<c_ps[4],td<=0;
P_c的坐标:P(c_ps[3],c_ps[4],0)。
(3)如果满足条件:s[0]>0,c_ps[1]>=c_ps[4],td>0;
P_c的坐标:P(c_ps[3],c_ps[4],0)。
(4)如果满足条件:s[0]>0,c_ps[1]>=c_ps[4],td<=0;
P_c的坐标:P(c_ps[0],c_ps[1],0)。
(5)如果满足条件:s[0]<=0,c_ps[1]<c_ps[4],td>0;
P_c的坐标:P(c_ps[3],c_ps[4],0)。
(6)如果满足条件:s[0]<=0,c_ps[1]<c_ps[4],td<=0;
P_c的坐标:P(c_ps[0],c_ps[1],0)。
(7)如果满足条件:s[0]<=0,c_ps[1]>=c_ps[4],td>0;
P_c的坐标:P(c_ps[0],c_ps[1],0)。
(8)如果满足条件:s[0]<=0,c_ps[1]>=c_ps[4],td<=0;
P_c的坐标:=P(c_ps[3],c_ps[4],0)。
圆心坐标位置确定后,C0和C1作为绘图过程中的辅助圆,删除掉。
S130、根据所述圆弧的圆心位置坐标对所述圆弧进行移动,并对移动后的圆弧进行离散化处理,得到多个离散化后的圆弧点坐标;
在本发明实施例中,将所述圆弧所对应的圆心位置坐标移动至坐标原点,所述圆弧的起点坐标和终点坐标进行相应的移动,得到移动后的圆弧的起点坐标和终点坐标;
判断移动后的圆弧的起点坐标的象限位置,并计算圆弧绘图的起始角;
对移动后的圆弧进行离散化处理,得到多个离散化后的圆弧点坐标。
应当理解的是,在进行圆弧移动时,具体包括:圆弧平移到坐标原点(0,0,0)。
由于圆弧是由其对应的圆心点和圆弧弦向量决定的,所以圆弧的平移等价于其圆弧弦向量平移。把圆心点P_c平移至坐标原点、圆弧的起点坐标p_0和终点坐标p_1也做相同的平移,新位置对应点p_0pie和点p_1pie。
p_0pie=p_0-P_c,p_1pie=p_1-P_c。
具体地,所述判断移动后的圆弧的起点坐标的象限位置,并计算圆弧绘图的起始角,包括:
根据移动后的圆弧的起点坐标的x坐标与0的大小以及y坐标与0的大小判断移动后的圆弧的起点坐标的象限位置;
根据移动后的圆弧的起点坐标所在的象限位置计算圆弧绘图的起始角。
应当理解的是,如果平移后的圆弧的起点p_0pie的x坐标p_0pie[0]>0,y坐标p_0pie[1]>0,说明平移后的圆弧的起点p_0pie的落在第一象限,同样的方法,可以判断p_0pie是否落在了第二、三、四象限或者y坐标轴上。因为,落在不同象限时,圆弧绘图起始角θ0是不一样的。分为6种状况计算圆弧绘图起始角θ0,计算方法如下:
(1)如果满足条件:p_0pie[0]>0,p_0pie[1]>0,θ0=atan(|p_0pie[1]÷p_0pie[0]|);
(2)如果满足条件:p_0pie[0]>0,p_0pie[1]<=0,
θ0=π×2.0-atan(|p_0pie[1]÷p_0pie[0]|);
(3)如果满足条件:p_0pie[0]=0,p_0pie[1]>0,θ0=π×0.5;
(4)如果满足条件:p_0pie[0]=0,p_0pie[1]<0,θ0=π×1.5;
(5)如果满足条件:p_0pie[0]<0,p_0pie[1]>0,
θ0=π-atan(|p_0pie[1]÷p_0pie[0]|);
(6)如果满足条件:p_0pie[0]<0,p_0pie[1]<0,
θ0=π+atan(|p_0pie[1]÷p_0pie[0]|)。
式中,π=3.1415926......,表示圆周率。
在本发明实施例中,所述对移动后的圆弧进行离散化处理,得到多个离散化后的圆弧点坐标,包括:
将所述圆弧对应的圆心角分成m份,根据所述圆心角以及所述m计算圆心角离散化的步长;
根据圆弧凸度确定圆弧离散化的方式,并根据所述起始角与所述圆心角离散化的步长确定离散化后的圆弧点坐标。
最后,将离散化后的圆弧点坐标均移动回原位置。
具体地,把圆心角θ分成m份,获得圆心角离散化的步长a_s,可以采用以下方式:
a_s=θ÷m,
当td>0时,凸圆弧离散化,每个离散点的(x,y)坐标用下面的公式计算得到:
y=r×sin(θ0-i×a_s),x=r×cos(θ0-i×a_s),i的取值范围[0,m];
当td<0时,凹圆弧离散化,每个离散点的(x,y)坐标用下面的公式计算得到:
y=r×sin(θ0+i×a_s),x=r×cos(θ0+i×a_s),i的取值范围[0,m]。
为了便于理解,现在以男士衬衫的领座参数化绘图为例,做进一步说明。
图2和图3所示,图2的圆弧线离散化之后变成了图3的圆弧微线段;图4的撇式圆弧线离散化之后变成了图5的圆弧微线段。
需要说明的是,在圆弧离散化之后,还需要将离散化的圆弧点坐标平移回移动前的圆弧位置。
圆弧离散化之后,再把m+1个离散点反向平移回去,采用的计算公式如下:
arc_n_np[i×3]=x+P_c[0],arc_n_np[i×3+1]=y+P_c[1],
式中,arc_n_np表示一个矩阵,并表示一段圆弧被离散化为m段,m+1个点,被重新平移回了原位置。
S140、对所述离散化后的圆弧点坐标插入多义线坐标矩阵;
如果多义线坐标矩阵arc_np的第L_n段用一段圆弧离散化,就是把多义线的第L_n点和L_n+1点之间插入arc_n_np矩阵的m+1个点;第0点到L_n-1点保持不变,第L_n+2点至最后一点依次后移。用下面的公式实现:
arc_np_insert[i]=arc_np[i],i的取值范围[0,L_n×3-1];
arc_np_insert[i]=arc_n_np,i的取值范围[L_n×3,(L_n+m+1)×3-1];
arc_np_insert[i]=arc_np[i2],i的取值范围[(L_n+m+1)×3,max],
i2的取值范围[(L_n+2)×3,max];
式中,arc_np_insert表示离散化数据插入后的多义线坐标矩阵,需要变换成aDouble数据类型,就可以绘制出带有离散化的圆弧的多义线图形。
如图6所示,是直接离散化之后的领座的曲线。
S150、根据插入多义线坐标矩阵后的圆弧点坐标绘制离散化的圆弧的多义线图形;
S160、向数控裁剪设备输出所述离散化的圆弧的多义线图形。
本发明实施例提供的基于服装圆弧曲线的离散化参数绘图方法,通过采用圆弧并进行离散化处理成多个线段的方式,实现数控裁剪设备可以直接识别微线段的目的,且提高了绘制的服装版芯图的通用性,从而可以便于智能制造车间的数控裁剪设备自动编程下料,进而提高了生产效率,降低了人工成本。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。