A. c語言畫曲線
#include <stdio.h>
#include "genlib.h"
#include "graphics.h"
main()
{
InitGraphics();
MovePen(1.5,1.0);
DrawArc(0.5,90.180);
}
這個是c語言的畫圓弧的代碼,不過我在vc ,tc上運行的話,它都是說沒這個"genlib.h"頭文件的,所以機子上到現在還是沒運行成功,這個是有本書上的原代碼,那個叫《c語言的科學和藝術》,不妨去看看!
B. C語言怎麼樣用已知坐標點來畫圓滑曲線的生成這些點的演算法是怎麼樣的
需要一個二元函數。然後隨著x變數的不斷增加而不斷改變y坐標點,就可以在畫板上畫出線啦。
由於已知坐標點,那x坐標范圍就已知咯。
C. 求教:用C語言怎麼實現實時曲線
可以利用 GLUT 程序包 (OpenGL 功能) 動態繪圖,例如,一邊實時采樣,一邊顯示。
簡單的實時曲線可以用 固定 坐標,x 時間軸,y1, y2, ..yn 為實時量,例如 溫度,壓力,速度..., 用 沿 x 移動的 一根垂線, 表示當前時間分界點,左邊的已更新,但垂線移動到x 最右端時,更新 x 坐標刻度,垂線 在從 最左端開始,繪制 新的時段數值。
另一種方法是 固定 x 軸 總時段長度,但是不斷更新 x 軸 刻度 和 yi 數據,使整段曲線看上去 是 從右向左 光滑移動動。
參數設置,顯示,采樣控制等,都 可以在屏幕上用按鈕,Text 等 實現。
直接用 OpenGL 則需 用 c++ 程序,MFC + OpenGL 之類 實現。
D. 用c語言寫程序,此程序能畫出來函數y=2x+5的曲線圖形。
此題把數學問題轉化為用C語言描述即可,很多畫圖問題可以使用這種方法。
假設屏幕左上角為坐標軸原點
#include<stdio.h>
#defineMAX30//選定曲線要顯示的范圍,因為一次函數是一條直線,所以它的顯示範圍無窮
intmain()
{
intx,y;
for(y=30;y>=0;y--)
{
for(x=0;x<MAX;x++)
{
if(y==2*x+5)
{
printf("*");
}
else
{
printf("");//空格,不滿足y=2x+5的點
}
}
printf("
");//x軸已經到顯示範圍,所以需要換行。
}
return0;
}
E. C語言程序設計問題,大神進,高分懸賞。。。。初等函數曲線圖形的簡易繪制
可以做一個二維[整形或char類型]數組,行列分別是屏幕的行列數,然後,通過計算在修改對應位置元素的值就可以,然後將數組元素列印出來(這里以char類型為例):
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define ROW 25
#define COL 84
char table[ROW][COL];
void initTable()
{
for(int i = 0; i < ROW; i++)
{
for(int j = 0; j < COL; j++)
{
table[i][j] = ' ';
}
}
}
int main(int argc, char*argv[])
{
// 這里以求cos(x) 為例
// 因為行列數為整形,所以這里對所求結果向下取整
// 這里以第20行為橫坐標位置
// 先繪制x,y坐標
for(int row = 0; row < ROW; row++)
{
table[row][0] = '|';
}
table[20][0] = '+';
for(int col = 1; col < COL; col++)
{
table[20][col] = '-';
}
table[0][0] = '^';
table[20][COL - 1] = '>';
// 這里隨x計算cos的值,並將對應的坐標處的字元替換為'*';
for(int x = 0; x < COL - 1; x++)
{
table[5 * ((int)(cos(x)))][x] = '*';
}
// 接下來就是逐行輸出了
for(int i = 0; i < ROW; i++)
{
for(int j = 0; j < COL; j++)
{
printf("%c", table[i][j]);
}
}
system("pause");
}
F. 採用c語言繪制任意函數曲線(雙曲線,二次函數,一次函數)怎麼做
在c的標准庫中有graphic.h頭文件,實現了很多畫圖函數 比如 lineto, moveto, arc,(函數名可能記錯,好久沒用了-.-!)
直線:起點加終點就行。
二次曲線,比如拋物線,那就以定長拆分成小直線。雙曲線同理。
拋物線,和雙曲線用定長拆分,估計很難計算。要是精度要求不高就根據情況改成定x,或者定y偏移的拆分,要是精度要求高那就去找直線擬合曲線的演算法或者雙圓弧擬合曲線的演算法。
G. 請問怎麼用c語言畫出希爾伯特曲線呢
#include<graphics.h>
#include<conio.h>
intg_len; //Hilbert曲線的單位長度
//遞歸繪制Hilbert曲線
voidhilbert(LPCTSTRcmd,intlevel)
{
staticBYTEd=0; //方向
staticPOINTc[4]={1,0,0,-1,-1,0,0,1}; //方向對應的軸系數
if(level<0)return;
//處理命令字元串
inti=0;
while(cmd[i])
{
switch(cmd[i++])
{
case'+': d=(d+1)&3; break;
case'-': d=(d-1)&3; break;
case'X': hilbert("+YF-XFX-FY+",level-1); break;
case'Y': hilbert("-XF+YFY+FX-",level-1); break;
case'F': linerel(c[d].x*g_len,c[d].y*g_len); break;
}
}
}
//主函數
voidmain()
{
//設置繪圖環境
initgraph(800,600); //設置窗口大小
outtextxy(20,550,"按1~8顯示不同級別的Hilbert曲線,按ESC退出。");
rectangle(143,23,657,537); //繪製表示範圍的矩形框
setorigin(144,24); //設置原點坐標
setcolor(RED); //設置顏色
setfillstyle(BLACK);
intlevel='5'; //設置初始級別
do
{
if(level>='1'&&level<='8') //僅處理1~8
{
level-='0'; //轉換為對應的數字值
bar(0,0,511,511); //清空繪圖區
g_len=512>>level; //計算單位長度
moveto(g_len/2,512-g_len/2); //設定起點
hilbert("X",level); //遞歸繪制Hilbert曲線
}
}
while((level=getch())!=27); //按ESC退出
closegraph();
}
H. 怎樣用c語言畫函數曲線圖
DOS裡面可以直接操作顯存,windows里就不行了,尤其是NT系統。建議用GDI獲DX吧