新聞中心
C語言如何畫圖
framebuffer(幀緩沖)。
站在用戶的角度思考問題,與客戶深入溝通,找到回民網(wǎng)站設計與回民網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋回民地區(qū)。
幀的最低數(shù)量為24(人肉眼可見)(低于24則感覺到畫面不流暢)。
顯卡與幀的關(guān)系:由cpu調(diào)節(jié)其數(shù)據(jù)傳輸速率來輸出其三基色的配比。
三基色:RGB(紅綠藍)。
在沒有桌面和圖形文件的系統(tǒng)界面,可以通過C語言的編程來實現(xiàn)在黑色背景上畫圖!
用下面的代碼,在需要的地方(有注釋)適當修改,就能畫出自己喜歡的圖形!
PS:同樣要編譯運行后才能出效果。
#include stdio.h
#include sys/mman.h
#include fcntl.h
#include linux/fb.h
#include stdlib.h
#define RGB888(r,g,b) ((r 0xff) 16 | (g 0xff) 8 | (b 0xff))
#define RGB565(r,g,b) ((r 0x1f) 11 | (g 0x3f) 5 | (b 0x1f))
int main()
{
int fd = open("/dev/fb0", O_RDWR);
if(fd 0){
perror("open err. \n");
exit(EXIT_FAILURE);
printf("xres: %d\n", info.xres);
printf("yres: %d\n", info.yres);
printf("bits_per_pixel: %d\n", info.bits_per_pixel);
size_t len = info.xres*info.yres*info.bits_per_pixel 3;
unsigned long* addr = NULL;
addr = mmap(NULL, len, PROT_WRITE|PROT_READ, MAP_SHARED, fd, 0);
if(addr == (void*)-1){
perror("mmap err. \n");
C語言編程:怎么讓編寫的程序理解用戶給出的函數(shù)解析式,并繪制出相應的函數(shù)圖像?
挺有意思的問題,簡單談一下看法
將你的需求分成兩部分,一是讓程序自行解析用戶輸入的函數(shù)解析式,二是繪制函數(shù)圖像。
首先,關(guān)于第一個功能,最直接的思路就是字符串解析,按照數(shù)學知識定義不同的運算符號,按照使用習慣定義常用的變量和常量的符號字母,然后據(jù)此規(guī)則解析輸入的字符串,再根據(jù)解析結(jié)果確定函數(shù)中基本運算的次數(shù)及運算順序,最后將整個操作流程以一定形式存儲起來即可。
例如,對于y=log(x^2+x),包含三次基本運算,第一步是x^2,第二步是上一步的結(jié)果+x,第三步是上一步的結(jié)果求對數(shù)。注意到log有定義域的限制,這也是要在程序中實現(xiàn)的。
然后,對于第二個功能,根據(jù)給定函數(shù)繪制圖像并不難,對于一元和二元函數(shù)來說很容易實現(xiàn),難點在于多元函數(shù)應如何繪制直觀易懂的函數(shù)圖像?不過這一點超出編程語言的范疇了,而且二元函數(shù)可以滿足大部分應用場景了。
繪制函數(shù)圖像的程序只需在定義域上按指定的步長求出不同自變量對應的函數(shù)值,然后將點連成線,即可繪制出函數(shù)圖像。例如對于logx,定義域為x0。假設步長為0.1,則可求出0.1,0.2,0.3,...,99.9,100.0的函數(shù)值,然后繪制出點,再連點成線,即可得到函數(shù)圖像。
另外,這里還有很多細節(jié)沒有討論,例如輸入數(shù)據(jù)是字符串還是圖像;是否可以用其他方法解析輸入,例如神經(jīng)網(wǎng)絡。這些就很復雜了,不再深入。
回答中可能有考慮不周的地方,希望上述內(nèi)容對你有參考意義
怎么用c語言畫函數(shù)圖像?
我畫了半個正弦函數(shù),其余的你可以照著畫,歡迎討論,
#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();
}
怎樣用c語言根據(jù)函數(shù)式畫出圖形來,要用到那些函數(shù)?
這樣根據(jù)你的開發(fā)環(huán)境,如果是TC,W-TC,就是用一樓的graphics.h
這是一個圖形庫,里面有函數(shù),你去百度百科查一下這個頭文件的全部函數(shù),包含劃線,畫矩形,畫圓。等等
如果是VC開發(fā)環(huán)境,就要用到工程,建一個win32 application,調(diào)用編譯器的API函數(shù),API就是應用程序接口,里面包含了一系列的圖形函數(shù),如果你想了解,可以參考MSDN,去看看windows程序設計這本書,他詳細講述了API函數(shù)的常用例子和用法
最后,對比一下graphics.h 和API函數(shù),graphics.h 是運行在DOS下的,API函數(shù)是運行在windows下的,一個樸素,一個更美觀
本文標題:c語言編程畫函數(shù)圖像 c語言編程畫函數(shù)圖像怎么畫
鏈接地址:http://ef60e0e.cn/article/hieoed.html