TC下調(diào)試通過(guò)
成都創(chuàng)新互聯(lián)專(zhuān)注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都網(wǎng)站制作、自流井網(wǎng)絡(luò)推廣、重慶小程序開(kāi)發(fā)公司、自流井網(wǎng)絡(luò)營(yíng)銷(xiāo)、自流井企業(yè)策劃、自流井品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供自流井建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:vcdvsql.cn
/*******************************************************
*Author :Wacs5
*Date :20090105(YYYY-MM-DD)
*Function :畫(huà)簡(jiǎn)易的曲線圖 *********************************************************/
#include stdio.h
#include conio.h
#include stdlib.h
#include math.h
#include Graphics.h
#define n 8
int main()
{
int i,j;
float data[]={7,3,12,6,9,5,8,11};
char str[40];
int gdrive=DETECT,gmode,errorcode;
int maxx,maxy;
int perx,pery;
int x0,x1,y0,y1;
int coloraxis=2,colorline=3;
float mindata,maxdata,ndata;
initgraph(gdrive,gmode,""); /*初始化設(shè)備*/
if ((errorcode=graphresult())!=grOk) /*查錯(cuò)*/
{
printf("Graphics error:%s\nPress any key to exit:",grapherrormsg(errorcode));
getch();
exit(1);
}
maxx=getmaxx();
maxy=getmaxy();
mindata=maxdata=data[0];
for (i=1;in;i++)
{
if (mindatadata[i])
mindata=data[i];
if (maxdatadata[i])
maxdata=data[i];
}
mindata=floor(mindata);
maxdata=ceil(maxdata);
perx=maxx/(n+4);
pery=maxy/(maxdata-mindata+4);
x0=2*perx;
y0=maxy-2*pery;
x1=maxx-2*perx;
y1=2*pery;
setcolor(coloraxis);
line(x0,y0,x1,y0);
line(x0,y0,x0,y1);
line(x1,y0,x1-4,y0+3);
line(x1,y0,x1-4,y0-3);
line(x0,y1,x0+3,y1+4);
line(x0,y1,x0-3,y1+4);
settextjustify(CENTER_TEXT,TOP_TEXT);
for (i=0;in;i+=n/3)
{
j=x0+i*perx;
line(j,y0,j,y0+2); /*刻度線*/
sprintf(str,"%d",i);
outtextxy(j,y0+4,str);
}
settextjustify(RIGHT_TEXT,CENTER_TEXT);
for (i=(maxdata-mindata)/3;i=maxdata-mindata;i+=(maxdata-mindata)/3)
{
j=y0-i*pery;
line(x0,j,x0-2,j); /*刻度線*/
sprintf(str,"%d",(int)mindata+i);
outtextxy(x0-4,j,str);
}
setcolor(colorline);
x1=x0+perx;
y1=y0-(data[0]-mindata)*pery;
circle(x1,y1,2);
moveto(x1,y1);
i=1;
do
{
x1+=perx;
y1=y0-(data[i]-mindata)*pery;
lineto(x1,y1);
circle(x1,y1,2);
moveto(x1,y1);
i++;
}while(in);
getch();
closegraph();
return 0;
}
/*請(qǐng)不要看完了就走人*/
/*幫幫忙,采納我的答案!*/
#includestdio.h
#includemath.h
main(){
double
y;
int
x,m,i;
printf("y=sin(x)
[0x2*pi]\n");
for(y=1;y=-1;y-=0.1){
if(y=0){
m=asin(y)*10;
for(x=1;xm;x++)printf("
");
printf("*",m);
for(;x31-m;x++)printf("
");
printf("*\n");}
else{
m=-1*asin(y)*10;
for(i=0;i32;i++)printf("
");
for(x=1;xm;x++)printf("
");
printf("*",m);
for(;x31-m;x++)printf("
");
printf("*\n",m);
}
}
}
c語(yǔ)言中表達(dá)n次方可以用pow函數(shù)。
函數(shù)原型:double
pow(double
x,
double
y)
功
能:計(jì)算x^y的值
返
回
值:計(jì)算結(jié)果
舉例:
double
a;a
=
pow(3.14,
2);
//
計(jì)算3.14的平方,并將結(jié)果保存在變量a中
注:使用pow函數(shù)必須將頭文件#include包含進(jìn)源文件中
可以做一個(gè)二維[整形或char類(lèi)型]數(shù)組,行列分別是屏幕的行列數(shù),然后,通過(guò)計(jì)算在修改對(duì)應(yīng)位置元素的值就可以,然后將數(shù)組元素打印出來(lái)(這里以char類(lèi)型為例):
#include stdio.h
#include math.h
#include stdlib.h
#define ROW 25
#define COL 84
char table[ROW][COL];
void initTable()
{
for(int i = 0; i ROW; i++)
{
for(int j = 0; j COL; j++)
{
table[i][j] = ' ';
}
}
}
int main(int argc, char*argv[])
{
// 這里以求cos(x) 為例
// 因?yàn)樾辛袛?shù)為整形,所以這里對(duì)所求結(jié)果向下取整
// 這里以第20行為橫坐標(biāo)位置
// 先繪制x,y坐標(biāo)
for(int row = 0; row ROW; row++)
{
table[row][0] = '|';
}
table[20][0] = '+';
for(int col = 1; col COL; col++)
{
table[20][col] = '-';
}
table[0][0] = '^';
table[20][COL - 1] = '';
// 這里隨x計(jì)算cos的值,并將對(duì)應(yīng)的坐標(biāo)處的字符替換為'*';
for(int x = 0; x COL - 1; x++)
{
table[5 * ((int)(cos(x)))][x] = '*';
}
// 接下來(lái)就是逐行輸出了
for(int i = 0; i ROW; i++)
{
for(int j = 0; j COL; j++)
{
printf("%c", table[i][j]);
}
}
system("pause");
}
在c的標(biāo)準(zhǔn)庫(kù)中有g(shù)raphic.h頭文件,實(shí)現(xiàn)了很多畫(huà)圖函數(shù) 比如 lineto, moveto, arc,(函數(shù)名可能記錯(cuò),好久沒(méi)用了-.-!)
直線:起點(diǎn)加終點(diǎn)就行。
二次曲線,比如拋物線,那就以定長(zhǎng)拆分成小直線。雙曲線同理。
拋物線,和雙曲線用定長(zhǎng)拆分,估計(jì)很難計(jì)算。要是精度要求不高就根據(jù)情況改成定x,或者定y偏移的拆分,要是精度要求高那就去找直線擬合曲線的算法或者雙圓弧擬合曲線的算法。
最簡(jiǎn)單的辦法是對(duì)區(qū)域均勻劃分,計(jì)算各點(diǎn)的函數(shù)值,然后把這些點(diǎn)用直線連接起來(lái)。例如,下面是繪制正弦曲線:
moveto(0, 100);
for (i=0; i=100;i++)
lineto(i, 100 + 100 *sin(M_PI * 2/100.0*i));
但是用直線連接起來(lái)不夠平滑,也有一些插值方法進(jìn)行改進(jìn)。比如采用不等間隔劃分區(qū)域,或把曲線使用一段段的二次、三次曲線連接起來(lái)。你可以參考清華大學(xué)出版社出版的《C語(yǔ)言常用算法程序集》
名稱(chēng)欄目:c語(yǔ)言函數(shù)曲線的繪制 c語(yǔ)言繪制曲線圖
URL地址:http://vcdvsql.cn/article34/hpghse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、App設(shè)計(jì)、建站公司、域名注冊(cè)、電子商務(wù)、App開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)