我画了半个正弦函数,其余的你可以照着画,欢迎讨论,
#include "stdioh"
#include "conioh"
#include "mathh"
#include "graphicsh"
void main()
{
int driver,mode,i;
driver=DETECT;
mode=0;
initgraph(&driver,&mode,"");
setcolor(15);
for(i=0;i<360;i++)
line(i,200sin(i314/360),i+1,200sin((i+1)314/360));
getch();
restorecrtmode();
}
用 VC 实现 绘图相对还是比较容易的
定义好图元类, 成员 主要有 位置, 线型,填充类型等; 实现绘图方法: 调用 CDC 类的 绘图函数实现绘制;
定义好图元的存储管理, 可以用链表,或数组;
如果 用 文档-视图 框架,在视图的 OnDraw 方法中, 调用各图元的绘图方法, 完成 图形的显示;
如果没用文档-视图 框架,则在 窗口的 WM_PAINT事件中,完成绘图;
4 设计好交互, 在 WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE等事件中, 进行具体实现 主要新建 , 改变大小, 拖动等
这样基本可以实现 简单的 绘图了
可百度搜索
想用mfc做一个绘图系统,画圆直线矩形填充颜色和平移
有我帮网友作的一个例子
因为平时我们用的c语言是在文本方式下运行的,所以不能够直接用c语言画图,在用c 语言惊醒画图之前,首先应该把c语言从文本模式转换为图形模式,初始化函数是 intgraph(图形驱动器名,图形驱动器模式,图形驱动器路径);一般图形驱动器名定为DETECT,模式为gmode,路径在你安装c语言文件夹里,BGI子目录,
画线的函数是line(x1,y1,x2,y2);分别是线的起始坐标。
其库函数包含在<graphicsh>里
莪这里有个代码,是绘画正弦曲线的
void CSinusoidView::OnDraw(CDC pDC)
{
CSinusoidDoc pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
//建立画笔
CPen cpen,pen;
penCreatePen(PS_SOLID,4,RGB(0,0,0));
cpenCreatePen(PS_SOLID,2,RGB(0,0,255));
pDC->SelectObject(&cpen);
//指定原点
pDC->SetViewportOrg(100,245);
pDC->SetTextColor(RGB(255,0,0));
//绘制横坐标
CString sPIText[]={"-1/2π","","1/2π","π","3/2π","2π","5/2π","3π","7/2π","4π","9/2π","5π"};
for(int n=-1,nTmp=0;nTmp<=660;n++,nTmp+=60)
{
pDC->LineTo(60n,0);
pDC->LineTo(60n,-5);
pDC->MoveTo(60n,0);
pDC->TextOut(60n-sPIText[n+1]GetLength()3,16,sPIText[n+1]);
}
pDC->MoveTo(0,0);
CString sTmp;
//绘制纵坐标
for(n=-4,nTmp=0;nTmp<=180;n++,nTmp=60n)
{
pDC->LineTo(0,60n);
pDC->LineTo(5,60n);
pDC->MoveTo(0,60n);
sTmpFormat("%d",-n);
pDC->TextOut(10,60n,sTmp);
}
double y,radian;
pDC->SelectObject(&pen);
for(int x=-60;x<600;x++)
{
//弧度=X坐标/曲线宽度角系数π
//Y坐标=振幅曲线宽度sin(弧度)
radian =x/((double)602)PI;
y=sin(radian)260;
pDC->MoveTo((int)x,(int)y);
pDC->LineTo((int)x,(int)y);
}
cpenDeleteObject();
penDeleteObject();
}
/请不要看完了就走人/
/帮帮忙,采纳我的答案!/
#include<stdioh>
#include<mathh>
main(){
double
y;
int
x,m,i;
printf("y=sin(x)
[0<x<2pi]\n");
for(y=1;y>=-1;y-=01){
if(y>=0){
m=asin(y)10;
for(x=1;x<m;x++)printf("
");
printf("",m);
for(;x<31-m;x++)printf("
");
printf("\n");}
else{
m=-1asin(y)10;
for(i=0;i<32;i++)printf("
");
for(x=1;x<m;x++)printf("
");
printf("",m);
for(;x<31-m;x++)printf("
");
printf("\n",m);
}
}
}
加些分上去,我把代码贴上来。
/ HELLOC -- Hello, world /
#include <graphicsh>
#include <stdioh>
void save_pic(char fn,int maxx,int maxy){
typedef long LONG;
typedef unsigned char BYTE;
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
int i,j;
FILE fp;
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bif;
int color[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};
unsigned char rgb[64]={0,0,0,0,0,0,128,0,0,128,0,0,0,128,128,0
,128,0,0,0,128,0,128,0,128,128,0,0,128,128,128,0
,192,192,192,0,0,0,225,0,0,255,0,0,0,255,255,0
,255,0,0,0,255,0,255,0,255,255,0,0,255,255,255,0};
union
{
unsigned char value;
struct
{
unsigned c1:4;
unsigned c2:4;
}color;
}mycolor;
bfhbfType=0x4d42;
bfhbfSize=153718;
bfhbfReserved1=0;
bfhbfReserved2=0;
bfhbfOffBits=118;
bifbiSize=40;
bifbiWidth=640;
bifbiHeight=480;
bifbiPlanes=1;
bifbiBitCount=4;
bifbiCompression=0;
bifbiSizeImage=0;
bifbiXPelsPerMeter=0;
bifbiYPelsPerMeter=0;
bifbiClrUsed=0;
bifbiClrImportant=0;
fp=fopen(fn,"wb");
fwrite(&bfh,sizeof(bfh),1,fp);
fwrite(&bif,sizeof(bif),1,fp);
fwrite(rgb,sizeof(rgb),1,fp);
for(j=maxy-1;j>=0;j--){
for(i=0;i<maxx;i+=2){
mycolorcolorc2=color[getpixel(i,j)];
mycolorcolorc1=color[getpixel(i+1,j)];
putc(mycolorvalue,fp);
}
}
fclose(fp);
}
main()
{
int gd=DETECT,gm;
int maxx,maxy,key;
registerbgidriver(EGAVGA_driver); /用了这个函数后,你的程序就算在下面没指明BGI
路径也能在每台机器上运行,具体做法见我们论坛上贴子,<独立图形程序的建立>
>
以上就是关于怎么用c语言画函数图像全部的内容,包括:怎么用c语言画函数图像、如何在VC++6.0中使用C语言简单的绘图画图功能、c语言画图怎么画直方图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)