精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網(wǎng)站建設資訊

NEWS

網(wǎng)站建設資訊

c語言調(diào)用函數(shù)畫三角形 c語言使用三角函數(shù)

C語言調(diào)用函數(shù)輸出任意行數(shù),任意字符的等腰三角形

#includeint main(){ int m, n; int i, j; int cur; printf("intput n : "); scanf("%d", n); cur = 0; for(i = n; i = 1; --i){ for(j = 1; j 9) cur = 0; } printf("\n"); } return 0;}

創(chuàng)新互聯(lián)建站專注于阜城企業(yè)網(wǎng)站建設,成都響應式網(wǎng)站建設,成都商城網(wǎng)站開發(fā)。阜城網(wǎng)站建設公司,為阜城等地區(qū)提供建站服務。全流程按需網(wǎng)站制作,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務

C語言畫三角形的函數(shù)

用tc編譯器,其中的頭文件graphics.h中包含畫圖的很多函數(shù),直接調(diào)用庫函數(shù)就能畫出自己想要的圖形了!

C語言基礎問題,畫三角形

你描述的輸入不清,我調(diào)整了一下。

其實最重要是分解程序編程一個一個操作。

首先要有個畫板,

然后程序能畫線,

最后對三角形填充。

就是這么簡單,三種操作。

先來個短的代碼:

#include?stdio.h

#include?math.h

#include?string.h

using?namespace?std;

const?int?bsize?=?64;?//?最大畫板大小

const?double?eps?=?1e-6;?//?精度控制

char?board[bsize][bsize];?//?畫板

int?bw,?bh;?//?畫板寬高

int?main()

{

void?printBoard();?//?輸出畫板內(nèi)容

int?iw,?ih;

double?x[3],?y[3];

double?v0x,?v0y,?v1x,?v1y,?v2x,?v2y;

double?d00,?d01,?d11,?d20,?d21,?denom,?v,?u,?w;

scanf("%d%d",?ih,?iw);

bw?=?iw?+?2;?//?你邊緣多出了邊框,所以+2

bh?=?ih?+?2;

scanf("%lf%lf%lf%lf%lf%lf",?x,?y,?x?+?1,?y?+?1,?x?+?2,?y?+?2);

//?清空畫板

for?(int?i?=?0;?i??bh;?i++)

for?(int?j?=?0;?j??bw;?j++)

board[i][j]?=?'?';

//?利用質(zhì)心坐標求值

v0x?=?x[1]?-?x[0],?v0y?=?y[1]?-?y[0];

v1x?=?x[2]?-?x[0],?v1y?=?y[2]?-?y[0];

for?(int?i?=?0;?i??bh;?i++)

for?(int?j?=?0;?j??bw;?j++)

{

v2x?=?i?-?x[0],?v2y?=?j?-?y[0];

?d00?=?v0x*v0x?+?v0y*v0y;

?d01?=?v0x*v1x?+?v0y*v1y;

?d11?=?v1x*v1x?+?v1y*v1y;

?d20?=?v2x*v0x?+?v2y*v0y;

?d21?=?v2x*v1x?+?v2y*v1y;

?denom?=?d00*d11?-?d01*d01;

?v?=?(d11*d20?-?d01*d21)?/?denom;

?u?=?(d00*d21?-?d01*d20)?/?denom;

?w?=?1?-?u?-?v;

?if?(0?=?v??v?=?1??0?=?u??u?=?1??0?=?w??w?=?1)

?board[bh?-?1?-?i][j]?=?'*';

}

//?畫邊框

for?(int?i?=?0;?i??bw;?i++)

{

board[0][i]?=?'-';

board[bh?-?1][i]?=?'-';

}

for?(int?i?=?0;?i??bh;?i++)

{

board[i][0]?=?'|';

board[i][bw?-?1]?=?'|';

}

board[0][0]?=?board[bh?-?1][0]?=?board[0][bw?-?1]?=?board[bh?-?1][bw?-?1]?=?'+';

printBoard();

return?0;

}

void?printBoard()

{

int?i,?j;

for?(j?=?0;?j??bh;?j++)

{

for?(i?=?0;?i??bw;?i++)

putc(board[j][i],?stdout);

putc('\n',?stdout);

}

}

就是枚舉三角形點來畫的。

運行效果:

然后給你一份通用示例吧,

這可以畫任意邊型,

都有注釋了,

不懂可以再詢問。

代碼如下:

#include?stdio.h

#include?math.h

#include?string.h

using?namespace?std;

const?int?bsize?=?64;?//?最大畫板大小

const?double?eps?=?1e-6;?//?精度控制

char?board[bsize][bsize];?//?畫板

int?bw,?bh;?//?畫板寬高

int?main()

{

void?clearBoard(char?brush);?//?清空畫板

void?drawBorder();?//?畫邊框的

void?drawLine(double?x0,?double?y0,?double?x1,?double?y1,?char?brush);?//?畫線的

void?fillArea(char?brush);?//?填充的

void?printBoard();?//?輸出畫板內(nèi)容

int?w,?h;

double?x[3],?y[3];

scanf("%d%d",?h,?w);

bw?=?w?+?2;?//?你邊緣多出了邊框,所以+2

bh?=?h?+?2;

scanf("%lf%lf%lf%lf%lf%lf",?x,?y,?x?+?1,?y?+?1,?x?+?2,?y?+?2);

//?初始化畫板

clearBoard('?');

drawBorder();

//?畫三角形

drawLine(x[0],?y[0],?x[1],?y[1],?'*');

drawLine(x[1],?y[1],?x[2],?y[2],?'*');

drawLine(x[2],?y[2],?x[0],?y[0],?'*');

//?填充輸出

fillArea('*');

printBoard();

return?0;

}

void?printBoard()

{

int?i,?j;

for?(j?=?0;?j??bh;?j++)

{

for?(i?=?0;?i??bw;?i++)

putc(board[j][i],?stdout);

putc('\n',?stdout);

}

}

//?填充?brush?圍成的區(qū)域

void?fillArea(char?brush)

{

int?i,?j,?b,?e;

for?(j?=?0;?j??bh;?j++)

{

b?=?e?=?-1;

for?(i?=?0;?i??bw;?i++)

if?(board[j][i]?==?brush)

if?(b?==?-1)?b?=?i;

else?e?=?i;

for?(i?=?b;?i?=?e;?i++)

board[j][i]?=?brush;

}

}

//?填充單個像素

void?fillPixel(int?x,?int?y,?char?brush)

{

int?tx,?ty;

//?對坐標的轉(zhuǎn)換

tx?=?x;

ty?=?bh?-?y?-?1;

if?(tx?=?0??tx??bw??ty?=?0??ty??bh)?//?如果超出畫板就不用畫了

board[ty][tx]?=?brush;

}

//?符號函數(shù)?整數(shù)返回1,負數(shù)返回-1,零返回0

int?sign(double?v)

{

if?(fabs(v)??eps)?return?0;

else?if?(v??0)?return?1;

else?return?-1;

}

//?交換用

void?sawp(double?*a,?double?*b)

{

double?t;

t?=?*a,?*a?=?*b,?*b?=?t;

}

/*

*?Bresenham?直線算法,請自行搜索

*/

void?drawLine(double?x0,?double?y0,?double?x1,?double?y1,?char?brush)

{

int?x,?y;

double?deltax,?deltay,?error,?deltaerr,?t;

if?(x0??x1)?sawp(x0,?x1),?sawp(y0,?y1);

deltax?=?x1?-?x0;

deltay?=?y1?-?y0;

error?=?0;

if?(fabs(deltax)??eps)

{

//?垂直線斜率不存在,要特殊處理

x?=?round(x0);

t?=?round(fmax(y0,?y1));

for?(y?=?round(fmin(y0,?y1));?y?=?t;?y++)

fillPixel(x,?y,?brush);

return;

}

//?Bresenham?直線算法

deltaerr?=?fabs(deltay?/?deltax);

y?=?round(y0);

for?(x?=?round(x0);?x?=?x1;?x++)

{

fillPixel(x,?y,?brush);

error?+=?deltaerr;

while?(error?=?0.5)

{

fillPixel(x,?y,?brush);

y?=?y?+?sign(y1?-?y0);

error?-=?1.0;

}

}

}

void?drawBorder()

{

//?畫四條邊

drawLine(1,?0,?bw?-?2,?0,?'-');

drawLine(1,?bh?-?1,?bw?-?2,?bh?-?1,?'-');

drawLine(0,?1,?0,?bh?-?2,?'|');

drawLine(bw?-?1,?1,?bw?-?1,?bh?-?2,?'|');

//?畫四個角落

fillPixel(0,?0,?'+');

fillPixel(bw?-?1,?0,?'+');

fillPixel(bw?-?1,?bh?-?1,?'+');

fillPixel(0,?bh?-?1,?'+');

}

void?clearBoard(char?brush)

{

//?逐個填充

int?i,?j;

for?(j?=?0;?j??bh;?j++)

for?(i?=?0;?i??bw;?i++)

board[j][i]?=?brush;

}

運行效果:

c語言調(diào)用函數(shù)求三角形周長和面積

1、海倫公式:

假設在平面內(nèi),有一個三角形,邊長分別為a、b、c,三角形的面積S可由以下公式求得:

S=√[p(p-a)(p-b)(p-c)]

而公式里的p為半周長:

p=(a+b+c)/2

2、例程:

#include

#include

void main()

{

float a,b,c,s,area;

printf("依次輸入a,b,c(空格識別一個數(shù)):");

scanf("%f%f%f,",a,b,c);

s=(float)0.5*(a+b+c);

area = (float)sqrt(s*(s-a)*(s-b)*(s-c));

printf("面積為:%f",area);

}

怎么用c語言編寫三角形

#include?stdio.h

int?main(void){

int?n,i,j;

printf("輸入三角的行數(shù)(1-26):\n");

scanf("%d",n);

for(i=1;?i=n;?i++)

{

for(j=1;ji;j++)

{

printf("?");

}

for(j=65;j=65+n-i;j++)

{

printf("%c",j);

}

printf("\n");

}

return?0;

}

用C語言做個三角形

#includestdio.h

main(){

int n,i,j;

while(scanf("%d",n)n!=0){/*輸入n行數(shù),n=0退出*/

for(i=0; in; i++){//列數(shù)循環(huán)

for(j=0; ji; j++)//行數(shù)循環(huán)

printf("%d ",j+1);//輸出數(shù)字

printf("\n");//換行

}

}

}


當前標題:c語言調(diào)用函數(shù)畫三角形 c語言使用三角函數(shù)
本文網(wǎng)址:http://m.jcarcd.cn/article/hhoeip.html
主站蜘蛛池模板: 国产精品高清小罗 | 国产一区二区在线播 | 国产精品免费大片 | 国产免费人成视频 | 国产在线观看入口 | 欧美亚洲精品第一 | 国产午夜一区二 | 日韩BD| 国内亚洲 | 日韩丰满少 | 精品一二三四区 | 区二区视频在线观看 | 国产亚洲视频网站 | 91伊人影院| 精品多人p群 | 日本高清视频色惰 | 日韩欧美午夜视频 | 欧美三级 | 福利影院在线播放 | 中文字幕乱倫视频 | 中文字幕视频二区 | 果冻影视 | 爱福利导航 | 精品一级无 | 成人观看在线一区 | 韩国乱伦天堂网 | 乱码一二| 97精品在线观看 | 人人草影院 | 欧美在线综合视频 | 日本+国产+欧美 | 国内自拍第一页 | 加勒比一本大道香 | 国产精品一二三四区 | 午夜视频久 | 国产永久在线观看 | 午夜亚洲一区二区福 | 精品在线热 | 日韩中文字幕第二页 | 国产视频每日更新 | 99热精品免费 |