當前位置:編程學習大全網 - 源碼下載 - 左轉算法源代碼

左轉算法源代碼

下面的程序可以讓烏龜任意角度旋轉。我用它畫了壹個五角星,還畫了我的名字。

畫五角星的輸入是:

5,4

4,90

5,19

4,180

2

5,38

3,144

5,38

3,144

5,38

3,144

5,38

3,144

5,38

1

畫我名字的輸入是:

1

5,10

4,90

5,19

2

4,180

5,18

4,180

5,9

4,90

5,10

3,90

5,8

3,180

5,16

3,180

5,8

4,90

5,10

3,90

5,9

3,180

5,18

1

5,2

4,90

5,20

2

3,135

5,4

1

3,45

5,4

2

3,135

5,4

1

4,135

5,16

2

4,165

5,10

3,180

5,10

1

3,165

5,20

3,90

5,10

3,135

5,1

2

5,6

3,180

5,3

3,45

5,9

3,180

5,5

3,90

5,3

3,180

5,8

3,90

5,6

3,180

5,12

3,180

5,10

1

4,90

5,3

2

4,90

5,8

3,90

5,9

3,90

5,8

3,90

5,9

源代碼如下:

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltassert.h & gt

# include & ltmath.h & gt

const int left _ bound =-19;

const int right _ bound = 20

const int up _ bound =-19;

const int down _ bound = 20

bool sea[down _ bound-up _ bound+1][right _ bound-left _ bound+1];

布爾筆_下降;

浮動行、列;

float drow = -1,dcol = 0;

void print_sea()

{

for(int I = up _ bound;我& lt= down _ boundi++)

{

for(int j = left _ bound;j & lt= right _ boundj++)

{

printf(" % c " ,((sea[I-up _ bound][j-left _ bound])?'*':' '));

}

printf(" \ n ");

}

}

void up_pen()

{

pen _ down = 0;

}

void down_pen()

{

pen _ down = 1;

if(筆向下& amp& amp上界-0.4 & lt;= row & amp& amprow & lt=下界+0.4 & amp;& ampleft _ bound-0.4 & lt;= col & amp& ampcol & lt=右界+ 0.4)

{

sea[(int)(row-up _ bound+0.5)][(int)(col-left _ bound+0.5)]= true;

}

}

無效左轉(整數度)

{

浮點數pi = 3.1415926;

float alpha = deg * pi/180;

float drow _ new =-sin(alpha)* dcol+cos(alpha)* drow;

float dcol _ new = sin(alpha)* drow+cos(alpha)* dcol;

卓爾=卓爾_新;

dcol = dcol _ new

}

無效右轉(整數度)

{

左轉(-deg);

}

void forward_n(int n)

{

for(int I = 0;我& ltn;i++)

{

排+=卓爾;

col+= dcol;

if(筆向下& amp& amp上界-0.4 & lt;= row & amp& amprow & lt=下界+0.4 & amp;& ampleft _ bound-0.4 & lt;= col & amp& ampcol & lt=右界+ 0.4)

{

sea[(int)(row-up _ bound+0.5)][(int)(col-left _ bound+0.5)]= true;

}

}

}

int main()

{

for(;;)

{

int cmd = 9;

scanf(" %d ",& ampcmd);

開關(cmd)

{

案例1:

up _ pen();

打破;

案例二:

down _ pen();

打破;

案例三:

cmd = 90

scanf(",%d ",& ampcmd);

右轉(cmd);

打破;

案例4:

cmd = 90

scanf(",%d ",& ampcmd);

左轉(cmd);

打破;

案例5:

cmd = 0;

scanf(",%d ",& ampcmd);

forward _ n(cmd);

打破;

案例6:

print _ sea();

打破;

案例9:

返回0;

默認值:

返回1;

}

}

返回0;

}

  • 上一篇:生物信息學小碩壹枚,畢業後能轉行IT進互聯網公司嗎?
  • 下一篇:兩軍戰略對戰遊戲單機
  • copyright 2024編程學習大全網