如何用c语言画函数图像

已知一个函数的数学表达式,例如:y=sina(x).现在要用c语言将这个正弦曲线画出来,请教高手。我不知道怎么用c语言的图像工具函数,如果可以希望能举个小例子哈。谢谢... 已知一个函数的数学表达式,例如:y=sina(x).现在要用c语言将这个正弦曲线画出来,请教高手。
我不知道怎么用c语言的图像工具函数,如果可以希望能举个小例子哈。谢谢
展开
 我来答
beddy1
2008-09-19 · TA获得超过1989个赞
知道大有可为答主
回答量:2271
采纳率:0%
帮助的人:2264万
展开全部
用GDI绘图吧,比较简单。绘图的思想是让x以固定的值在区间内持续增长,比如x=0.1,0.2,0.3.....,以计算出的y值来确定y坐标。用线连接所有的点就行了。MoveTo(),LineTo()函数你用得着,具体情况请自行查看MSDN。
东莞大凡
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进... 点击进入详情页
本回答由东莞大凡提供
创作者H4YfdEYw80
2019-02-11 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:35%
帮助的人:1194万
展开全部
hehe
首先这个程序只能输出这种
不像正弦
也不象余弦的曲线。
因为你的程序的算法是每行有2个星星
其次,15+45=60,约等于2*pi
就是说,前面的15是pi/2,后面的45是pi/2*3,
输出的是1个周期的。sin(pi/2)=1。。这回懂了么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友98c8a11
2008-09-29 · TA获得超过1172个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:456万
展开全部
/*-----------------------------------------
正弦曲线
-----------------------------------------*/

#include <windows.h>
#include <math.h>

#define NUM 1000
#define TWOPI (2 * 3.14159)

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static char szAppName[] = "SineWave" ;
HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;

注意:用VC++6.0或其他Windows平台的编译器编译
wndclass.cbSize = sizeof (wndclass) ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ;

RegisterClassEx (&wndclass) ;

hwnd = CreateWindow (szAppName, "正弦曲线",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ;

ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
static int cxClient, cyClient ;
HDC hdc ;
int i ;
PAINTSTRUCT ps ;
POINT pt [NUM] ;

switch (iMsg)
{
case WM_SIZE:
cxClient = LOWORD (lParam) ;
cyClient = HIWORD (lParam) ;
return 0 ;

case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;

MoveToEx (hdc, 0, cyClient / 2, NULL) ;
LineTo (hdc, cxClient, cyClient / 2) ;

for (i = 0 ; i < NUM ; i++)
{
pt[i].x = i * cxClient / NUM ;
pt[i].y = (int) (cyClient / 2 *
(1 - sin (TWOPI * i / NUM))) ;
}

Polyline (hdc, pt, NUM) ;

return 0 ;

case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}

return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gggeeqfhvk
2008-09-19 · TA获得超过176个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:251万
展开全部
运用画点函数进行画
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式