你要什么圖像 sin 還cos 要不我都給你把!
鄂州ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
1、#includestdio.h
#includemath.h
void main()
{
double y;
int i,n;
for(y=1;y=0;y-=0.1)
{n=asin(y)*10;
for(i=1;i=n;i++)
printf(" ");
printf("*");
for(;i=31-n;i++)
printf(" ");
printf("*\n");}
for(y=0;y=1;y+=0.1)
{n=asin(y)*10;
for(i=-1;i=31+n;i++)
printf(" ");
printf("*");
for(;i=62-n;i++)
printf(" ");
printf("*\n");}
}
2、#includestdio.h
#includemath.h
void main()
{
double y;
int x,m;
for(y=1;y=-1;y-=0.1)
{m=acos(y)*10;
for(x=1;xm;x++)
printf(" ");
printf("*");
for(;x62-m;x++)
printf(" ");
printf("*\n");}
}
之后在給你個連個圖像相交的把
3、#includestdio.h
#includemath.h
void main()
{
double y;
int n,m,i,j,x,yy;
for(yy=0;yy=20;yy++)
{ y=0.1*yy;
m=acos(1-y)*10;
n=asin(1-y)*10;
i=32+asin(y-1)*10;
j=61-asin(y-1)*10;
for(x=0;x62;x++)
{if((x==n)(x==m)) printf("+");
else if((x==n)||(x==i)||(x==j)) printf("+");
else if((x==m)||(x==62-m)) printf("*");
else printf(" ");}
printf("\n");
}
}
#include?windows.h
LRESULT?CALLBACK?WndProc(HWND,?UINT,?WPARAM,?LPARAM);
int?WINAPI?WinMain(HINSTANCE?hInstance,?HINSTANCE?hPrevInstance,
PSTR?szCmdLine,?int?iCmdShow)
{
static?TCHAR?szAppName[]=TEXT("二次函數");
HWND?????????hwnd;
MSG??????????msg;
WNDCLASS?????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;
if?(!RegisterClass(wndclass))
{
MessageBox(NULL,?TEXT("Error"),
szAppName,?MB_ICONERROR);
return?0;
}
hwnd=CreateWindow(szAppName,?TEXT("二次函數"),
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?message,?WPARAM?wParam,?LPARAM?lParam)
{
static?int??cxClient,?cyClient;
const?static?int?n=1000;
HDC?????????hdc;
int?????????i;
PAINTSTRUCT?ps;
POINT???????apt[n];
switch?(message)
{
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);
MoveToEx(hdc,?cxClient/2,?0,?NULL);
LineTo(hdc,?cxClient/2,?cyClient);
for?(i=0;?i??n;++i)
{
apt[i].x=cxClient/4+i; apt[i].y=cyClient-(cyClient/2-i)*(cyClient/2-i)/300-cyClient/2+100;
}
Polyline(hdc,?apt,?n);
return?0;
case?WM_DESTROY:
PostQuitMessage(0);
return?0;
}
return?DefWindowProc(hwnd,?message,?wParam,?lParam);
}
挺有意思的問題,簡單談一下看法
將你的需求分成兩部分,一是讓程序自行解析用戶輸入的函數解析式,二是繪制函數圖像。
首先,關于第一個功能,最直接的思路就是字符串解析,按照數學知識定義不同的運算符號,按照使用習慣定義常用的變量和常量的符號字母,然后據此規則解析輸入的字符串,再根據解析結果確定函數中基本運算的次數及運算順序,最后將整個操作流程以一定形式存儲起來即可。
例如,對于y=log(x^2+x),包含三次基本運算,第一步是x^2,第二步是上一步的結果+x,第三步是上一步的結果求對數。注意到log有定義域的限制,這也是要在程序中實現的。
然后,對于第二個功能,根據給定函數繪制圖像并不難,對于一元和二元函數來說很容易實現,難點在于多元函數應如何繪制直觀易懂的函數圖像?不過這一點超出編程語言的范疇了,而且二元函數可以滿足大部分應用場景了。
繪制函數圖像的程序只需在定義域上按指定的步長求出不同自變量對應的函數值,然后將點連成線,即可繪制出函數圖像。例如對于logx,定義域為x0。假設步長為0.1,則可求出0.1,0.2,0.3,...,99.9,100.0的函數值,然后繪制出點,再連點成線,即可得到函數圖像。
另外,這里還有很多細節沒有討論,例如輸入數據是字符串還是圖像;是否可以用其他方法解析輸入,例如神經網絡。這些就很復雜了,不再深入。
回答中可能有考慮不周的地方,希望上述內容對你有參考意義
# include "graphics.h"
# include "math.h"
# define N 100
void init_graphic( )
main()
{
int i;
float x0,y0,x,y;
float x[100],y[100];
init_graphic();
for(i=0;i100;i++)
{
x[i]=-20+(40/100)*i;
y[i]=x[i]*x[i];
}
x0=x[0]+320;
y0=440-y[0];
for(i=1;i100;i++)
{
x1=x[i]+320;
y1=440-y[i];
line(x0,y0,x1,y1);
x0=x1;
y0=y1;
}
}
void init_graphic( )
{
int graphicdriver,graphicmode;
graphicdriver=DETECT;
graphicmode=1;
initgraph(graphicdriver,graphicmode,"E:\\turboc2\\")/*該路徑是你TurboC的路徑*/
}
不知道你要搞什么?如果是數學專業。建議用mathmatic軟件。如果是其他專業建議用matlab軟件。跟人覺得用MATLAB好點
;繪制函數z=1/(sqrt((1-x)^2+y^2))+1/(sqrt((1+x)^2+y^2));程序如下
xx=[-2:.1:-1.2,-1.1:0.02:-0.9,-0.8:0.1:0.8,0.9:0.02:1.1,1.2:0.1:2];
yy=[-1:0.1:-0.2,-0.1:0.02:0.1,0.2:.1:1];[x,y]=meshgrid(xx,yy);
z=1./(sqrt((1-x).^2+y.^2))+1./(sqrt((1+x).^2+y.^2));
surf(x,y,z),shading flat;zlim([0,15])
運行后就會出圖像。我就不傳圖片了
當前文章:c語言求二元函數圖像 用c語言編寫求解二元一次方程的解
當前地址:http://vcdvsql.cn/article40/dosdpho.html
成都網站建設公司_創新互聯,為您提供微信小程序、網站建設、品牌網站設計、動態網站、定制開發、做網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯