曲線斜紋組織圖:
因為其形狀酷似拋物線,拋物線又是曲線中的一種,故稱為曲線斜紋組織。
特點:1,每一根經紗上的組織點運動規律不變
2,飛數是變化的,故也稱為變飛數組織
飛數滿足的兩個條件:
Ⅰ所有的飛數之和必須等于基層組織循環數的整倍數或者零。這樣做才能保證組織的連續性
Ⅱ最大飛數必須小于基層組織中最長的浮線長度(連續的組織點個數)
例如:3上2下2上1下,其中最長的浮線長度為3,飛數必須小于3。
一、確定經緯紗循環數
經紗循環數還是一般式的累計和
緯紗循環數為飛數的個數+1,因為5個飛數可以確定6列,故列數為飛數個數+1
二、對第一列賦值
老規矩,從下往上,從左往右
核心代碼如下:
/*
對第1列進行賦值
*/i=1;//先對第一列賦值,從第一列的第一行開始for(j=0;j<m;j++){while(c[j]>0){a[N1-i+1][1]=1;//因為是分子,所有值都賦值為1c[j]--;i++;}while(d[j]>0){a[N1-i+1][1]=0;//因為是分母,所有值都賦值為0d[j]--;i++;}}
效果圖如下:
在這里插入圖片描述
三、根據飛數進行依次按規則組織方式賦值
這里根據每一個飛數求出對應一列
飛數為負數時需要進行轉換,公式如下:
對第2列到第N2列進行賦值,賦值關系如下:
核心代碼如下:
/*
將負飛數轉化為正數
*/for(i=1;i<=number;i++){if(f[i]<0)f[i]=N1+f[i];}
/*
對2到N2列 進行賦值
*/for(j=2;j<=N2;j++){for(i=1;i<=N1;i++){if((i+f[j-1])>N1) a[i][j] = a[i+f[j-1]-N1][j-1];else a[i][j]=a[i+f[j-1]][j-1];}}
四、最終整合代碼如下:
#include <iostream>
#include<stdio.h>
using namespace std;int main()
{int i,j,N1,N2,m,number;int c[10],d[10],f[20],a[100][100]={0};printf("please input m:");scanf("%d",&m);for(i=0;i<m;i++){printf("please input C[%d]:",i+1);scanf("%d",&c[i]);printf("please input D[%d]:",i+1);scanf("%d",&d[i]);}printf("please input the number of f:");scanf("%d",&number);for(i=1;i<=number;i++){printf("please input f[%d]:",i);scanf("%d",&f[i]);}N1=0;N2=number+1;for(i=0;i<=m-1;i++){N1=N1+c[i]+d[i];}/*
對第1列進行賦值
*/i=1;//先對第一列賦值,從第一列的第一行開始for(j=0;j<m;j++){while(c[j]>0){a[N1-i+1][1]=1;//因為是分子,所有值都賦值為1c[j]--;i++;}while(d[j]>0){a[N1-i+1][1]=0;//因為是分母,所有值都賦值為0d[j]--;i++;}}/*
將負飛數轉化為正數
*/for(i=1;i<=number;i++){if(f[i]<0)f[i]=N1+f[i];}/*
對2到N2列 進行賦值
*/for(j=2;j<=N2;j++){for(i=1;i<=N1;i++){if((i+f[j-1])>N1) a[i][j] = a[i+f[j-1]-N1][j-1];else a[i][j]=a[i+f[j-1]][j-1];}}/*
輸出二維數組a[i][j]
*/for(i=1;i<=N1;i++){for(j=1;j<=N2;j++){printf("%5d",a[i][j]);}printf("\n");}getchar();return 0;
}
效果圖如下: