先算出纵坐标的值,然后
成都网络公司-成都网站建设公司创新互联公司10年经验成就非凡,专业从事网站制作、成都网站制作,成都网页设计,成都网页制作,软文发稿,一元广告等。10年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:028-86922220,我们期待您的来电!
用二维数组来存储坐标,如:int a[5][5]; 可以用a[0][0] a[0][1]....
a[i][j]....a[4][3] a[4][4],来存储5对坐标值,i、j分别是横坐标和纵坐标。
#include "Conio.h"
#include "graphics.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
initgraph(gd, gm, "");
}
void DrawCoord();
void Drawstg();
void Drawcurve();
int main(void)
{
initgr(); /* BGI初始化 */
DrawCoord();
Drawstg();
Drawcurve();
getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
closegr(); /* 恢复TEXT屏幕模式 */
return 0;
}
void DrawCoord() /*画坐标系*/
{
line(50,40,50,400); /*y轴*/
line(50,400,600,400); /*x轴*/
line(50,40,45,50); /*箭头*/
line(50,40,55,50);
line(600,400,590,395);
line(600,400,590,405);
outtextxy(35,45,"y");
outtextxy(590,410,"x");
outtextxy(40,410,"O");
}
void Drawstg() /*画标尺*/
{
int x,y,i;
x=50,y=400;
for(i=0;i17;i++)
{
line(x+5,y,x,y);
y-=20;
}
x=50,y=400;
for(i=0;i26;i++)
{
line(x,y-5,x,y);
x+=20;
}
}
void Drawcurve()/*画图示例*/
{
line(50,400,500,400-250);
}
参考代码如下:
函数头文件CalC.h
double arround(double x[],double y[],int p);
函数定义文件CalC.c
#include math.h
double arround(double x[],double y[],int p)
{
int i;
double C=0; //周长
double l_p_i; // 第i条边长度
for(i=0;ip;i++)
{
l_p_i = sqrt((y[i+1]-y[i])*(y[i+1]-y[i]) + (x[i+1]-x[i])*(x[i+1]-x[i]));
printf("第%d条边长=%f\n",i+1,l_p_i);
C+=l_p_i;
}
return C;
}
主文件main.c
#include stdio.h
#include "CalC.h"
int main(void)
{
double x[3] = {0.0,4.0,4.0};
double y[3] = {0.0,0.0,3.0};
int p=3;
double C=0.0; //周长
C = arround(x,y,p);
printf("C=%f\n", C);
return 0;
}
效果图