我画了半个正弦函数,其余的你可以照着画,欢迎讨论,
成都创新互联始终坚持【策划先行,效果至上】的经营理念,通过多达十载累计超上千家客户的网站建设总结了一套系统有效的推广解决方案,现已广泛运用于各行各业的客户,其中包括:三轮搅拌车等企业,备受客户赞美。
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "graphics.h"
void main()
{
int driver,mode,i;
driver=DETECT;
mode=0;
initgraph(driver,mode,"");
setcolor(15);
for(i=0;i360;i++)
line(i,200*sin(i*3.14/360),i+1,200*sin((i+1)*3.14/360));
getch();
restorecrtmode();
}
挺有意思的问题,简单谈一下看法
将你的需求分成两部分,一是让程序自行解析用户输入的函数解析式,二是绘制函数图像。
首先,关于第一个功能,最直接的思路就是字符串解析,按照数学知识定义不同的运算符号,按照使用习惯定义常用的变量和常量的符号字母,然后据此规则解析输入的字符串,再根据解析结果确定函数中基本运算的次数及运算顺序,最后将整个操作流程以一定形式存储起来即可。
例如,对于y=log(x^2+x),包含三次基本运算,第一步是x^2,第二步是上一步的结果+x,第三步是上一步的结果求对数。注意到log有定义域的限制,这也是要在程序中实现的。
然后,对于第二个功能,根据给定函数绘制图像并不难,对于一元和二元函数来说很容易实现,难点在于多元函数应如何绘制直观易懂的函数图像?不过这一点超出编程语言的范畴了,而且二元函数可以满足大部分应用场景了。
绘制函数图像的程序只需在定义域上按指定的步长求出不同自变量对应的函数值,然后将点连成线,即可绘制出函数图像。例如对于logx,定义域为x0。假设步长为0.1,则可求出0.1,0.2,0.3,...,99.9,100.0的函数值,然后绘制出点,再连点成线,即可得到函数图像。
另外,这里还有很多细节没有讨论,例如输入数据是字符串还是图像;是否可以用其他方法解析输入,例如神经网络。这些就很复杂了,不再深入。
回答中可能有考虑不周的地方,希望上述内容对你有参考意义
需要Window图像编程,Window编程就是基于C语言的,在Visual C++6.0可以编写Win32程序
ls的兄弟,题目要求是用函数void draw(n, c)来实现功能的。。
下面的程序在vc6.0中通过编译。
#include stdio.h
void draw(int n,char c)
{
int i,j,k;
for(i=1;i=n;i++)
{
for(j=1;j=n-i;j++)
printf(" ");
for(k=1;k=2*(i-1)+1;k++)
printf("%c",c);
printf("\n");
}
}
main()
{
int n;
char c;
scanf("%d%c",n,c);
draw(n,c);
}