十、非规则组织分析及其数学模型——锯齿形斜纹组织
生活随笔
收集整理的這篇文章主要介紹了
十、非规则组织分析及其数学模型——锯齿形斜纹组织
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鋸齒形斜紋組織圖:
分析:
前半齒長度k,表示山谷到山峰的列數,也就是鋸齒的寬度;
鋸齒飛數s,表示山峰到山峰的行數,也就是鋸齒的高度。
起始點相差4格,也就是第一部分整體向上移動4格即可得到第二部分,同樣道理,第二部分向上移動4格即可得到第三部分
一、求出N1和N2
其中W為以一個完整循環中的鋸齒數;V為一個鋸齒內的經紗根數。
鋸齒形之所以有個上升的趨勢,是因為下降的高度和上升的高度有一個差即S,也就是少下降了S根,故上升的山峰高度差為S。
核心代碼如下:
效果圖如下:
二、求F1第一段鋸齒
可以把整體分為多個部分,每個鋸齒的行為N1,列為V。即每一個鋸齒都為N1×V的子矩陣,最終的組織矩陣就是多個子矩陣并列即可。
為了形成鋸齒,K和S之間必須滿足以下關系:
1,對第1列元素賦值
,其中i=1,2,3…,N1;j=2,3,4…,K
2,對第2到k列進行賦值
,其中i=2,3…,N1;j=2,3,4…,K
3,對第k+1列到V列進行賦值
Ⅰ轉變飛數f,由正轉為負:
Ⅱ之后再進行賦值,i=1,2,3,…,N1;j=K+1,K+2,…,V;
核心代碼如下:
/* 對第1列進行賦值 */i=1;//先對第一列賦值,從第一列的第一行開始for(j=0;j<=m-1;j++){while(c[j]>0){x[N1-i+1][1]=1;//因為是分子,所有值都賦值為1c[j]--;i++;}while(d[j]>0){x[N1-i+1][1]=0;//因為是分母,所有值都賦值為0d[j]--;i++;}}/* 對第2列到第k列 進行賦值 */for(j=2;j<=k;j++){for(i=1;i<=N1;i++){if((i+f)>N1) x[i][j] = x[i+f-N1][j-1];else x[i][j]=x[i+f][j-1];}}f=N1-f;//求kj列到N2列右半部分的飛數需要將負值轉變為正數 /* 對第k+1列到V列 進行賦值 */for(j=k+1;j<=v;j++){for(i=1;i<=N1;i++){if((i+f)>N1) x[i][j] = x[i+f-N1][j-1];else x[i][j]=x[i+f][j-1];}}效果圖如下:
三、根據F1,求F2第二段鋸齒以及剩余的鋸齒的值
鋸齒飛數s為正向上移動;s為負向下移動
,其中i=1,2,…, N1;j=1,2,…,V
優化公式:,其中i=1,2,....,N1;j=1,2,...,v;k=1,2,...,w-1;
程序流程圖如下:
四、最終優化代碼如下:
#include <iostream> #include<stdio.h> using namespace std;int main() {int i,j,N1,N2,m,w,v,k,s,a,b,f;int c[10],d[10],x[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 K:");scanf("%d",&k);printf("please input S:");scanf("%d",&s);printf("please input f:");scanf("%d",&f);N1=0;for(i=0;i<=m-1;i++){N1=N1+c[i]+d[i];}/* 求N1和s的最大公約數 */a=N1;b=s;while(a!=b) {if(a>b) {a=a-b;}else {b=b-a;}}w=N1/a;v=(2*k-2)-s;N2=w*v;/* 對第1列進行賦值 */i=1;//先對第一列賦值,從第一列的第一行開始for(j=0;j<=m-1;j++){while(c[j]>0){x[N1-i+1][1]=1;//因為是分子,所有值都賦值為1c[j]--;i++;}while(d[j]>0){x[N1-i+1][1]=0;//因為是分母,所有值都賦值為0d[j]--;i++;}}/* 對第2列到第k列 進行賦值 */for(j=2;j<=k;j++){for(i=1;i<=N1;i++){if((i+f)>N1) x[i][j] = x[i+f-N1][j-1];else x[i][j]=x[i+f][j-1];}}f=N1-f; /* 對第k+1列到V列 進行賦值 */for(j=k+1;j<=v;j++){for(i=1;i<=N1;i++){if((i+f)>N1) x[i][j] = x[i+f-N1][j-1];else x[i][j]=x[i+f][j-1];}}for(k=1;k<=w-1;k++){for(j=1;j<=v;j++){for(i=1;i<=N1;i++){if(i+s>N1){x[i][k*v+j]=x[i+s-N1][(k-1)*v+j];}else x[i][k*v+j]=x[i+s][(k-1)*v+j];}}}/* 輸出二維數組a[i][j] */for(i=1;i<=N1;i++){for(j=1;j<=N2;j++){printf("%5d",x[i][j]);}printf("\n");}getchar();return 0; }運行結果如下:
總結
以上是生活随笔為你收集整理的十、非规则组织分析及其数学模型——锯齿形斜纹组织的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 训长吴纯南剧情介绍
- 下一篇: 十一、非规则组织分析及其数学模型——芦席