本文目錄一覽:
- 1、急急急 用MATLAB編程 quiver命令繪製電場強度
- 2、誰能幫我寫2個matlab畫圖程序,物理的,像點電荷的電場線什麼的,隨便2個就行,急
- 3、用C語言畫波形圖啊……急求
- 4、如何用c語言畫圖,舉幾個最簡單的例子
- 5、c語言流程圖怎麼畫
- 6、C語言如何畫圖
急急急 用MATLAB編程 quiver命令繪製電場強度
clear
v=’1./((x-3).^2+y.^2).^0.5+1./((x+3).^2+y.^2).^0.5′;%電勢計算方程
xmax=10;ymax=10; ngrid=30;
xplot=linspace(-xmax,xmax,ngrid); %繪圖區域、網格線設定
[x,y]=meshgrid(xplot);%生成二維網格
vplot=eval(v);%執行輸入的電勢計算方程
[explot,eyplot] =gradient(-vplot);%計算電場強度
clf;meshc(vplot);% 畫含等勢線的三維曲面
xlabel(‘X’);ylabel(‘Y’);zlabel( ‘電勢’)
figure(2)
axis([-xmax,xmax,-ymax,ymax]);
et=contour(x,y,vplot);
clabel(et);hold on;
quiver(x,y,explot,eyplot);
xlabel(‘x’),ylabel(‘y’);
hold off;
誰能幫我寫2個matlab畫圖程序,物理的,像點電荷的電場線什麼的,隨便2個就行,急
1. 等量異號點電荷電場中電勢分布
[x,y]=meshgrid(-2:0.1:2,-2:0.1:2);
%以0.1為步長建立平面數據網格
z=1./sqrt((x-1).^2+y.^2+0.01)… %寫出電勢表達式
-1./sqrt((x+1).^2+y.^2+0.01);
[px,py]=gradient(z);
%求電勢在x,y方向的梯度即電場強度
contour(x,y,z,[-12,-8,-5,-3,-1,… %畫出等勢線
-0.5,-0.1,0.1,0.5,1,3,5,8,12])
hold on %作圖控制
quiver(x,y,px,py,’k’) %畫出各點上電場的大小和方向
2. 等量同號點電荷的電場線的繪製
下面是寫微分方程的函數文件:
function ydot=dcx1fun(t,y,flag,p1,p2)
%p1,p2是參量,表示電量
ydot=[p1*(y(1)+2)/(sqrt((y(1)+2).^2+y(2).^2).^3)+…
p2*(y(1)-2)/(sqrt((y(1)-2).^2+y(2).^2).^3);
%dx/dt=Ex
p1*y(2)/(sqrt((y(1)+2).^2+y(2).^2).^3)+…
p2*y(2)/(sqrt((y(1)-2).^2+y(2).^2).^3)];
%dy/dt=Ey
編寫好函數文件後,命名為dcx1fun.m存在當前路徑下,然後開始編寫解微分方程的主程序dcx1.m:
p1=10; p2=10; %點電荷所帶電量
axis([-5,5,-5,5]); %設定坐標軸範圍 -5≤x≤5,-5≤y≤5
hold on %圖形控制,不可擦除模式
plot(2,0,’*r’); plot(-2,0,’*r’) %繪製兩源電荷
a=(pi/24):pi/12:(2*pi-pi/24);
%圓周上電場線起點所對應的角度
b=0.1*cos(a);c=0.1*sin(a);
%電場線起點所對應的相對坐標
b1=-2+b;b2=2+b; %把起點圓周的圓心放置在源電荷處
b0=[b1 b2]; c0=[c c]; %初始條件,所有電場線的起點
%的橫、縱坐標構成了矢量b0和c0
for i=1:48 %循環求解48次微分方程
[t,y]=ode45(‘dcx1fun’,[0:0.05:40],[b0(i),c0(i)],[ ],p1,p2);
%調用ode45求解,對應一個初條件(起點),求解出一條電場線
plot(y(:,1),y(:,2),’b’) %繪製出此條電場線
end %結束循環,共繪製出48條電場線
參考於《Matlab 在基礎物理學中的應用》
用C語言畫波形圖啊……急求
簡略回答就是把x,y軸的值對應到屏幕上的x,y整數值,然後畫點並畫兩點之間的線。
如何用c語言畫圖,舉幾個最簡單的例子
首先需要繪圖函數的頭文件在TC2.0中是graphics.h
然後需要初始化圖形模式.
在利用繪圖函數
矩形:bar
圓形:circle
直線:line
等等。你可以到graphics.h文件中去看這些函數的參數
舉個例子
#include stdio.h
#include graphics.h
int main(void)
{
int gdriver; /*圖形驅動器*/
int gmode; /*圖形驅動模式*/
gdriver = DETECT; /*自動檢測硬體,已確定圖形驅動器*/
initgraph(gdriver,gmode,\”\”);初始化圖形設備
setbkcolor(BLUE); /*設置屏幕背景顏色為藍色*/
circle(getmaxx() / 2,getmaxy() / 2,100); /*在屏幕中間繪製一個半
為100的圓*/
closegraph(); /*關閉圖形模式*/
return(0);
}
c語言流程圖怎麼畫
畫法如下:
第一步:以特定的圖形符號加上說明,表示演算法的圖,稱為流程圖或框圖
打開流程編輯工具。
第二步:選擇對應的圖形
開始結束用橢圓形
過程用長方形
第三步::繪製整個流程的過程
第四步:將各個流程節點用線連接起來
第五步:添加備註
C語言如何畫圖
framebuffer(幀緩衝)。
幀的最低數量為24(人肉眼可見)(低於24則感覺到畫面不流暢)。
顯卡與幀的關係:由cpu調節其數據傳輸速率來輸出其三基色的配比。
三基色:RGB(紅綠藍)。
在沒有桌面和圖形文件的系統界面,可以通過C語言的編程來實現在黑色背景上畫圖!
用下面的代碼,在需要的地方(有注釋)適當修改,就能畫出自己喜歡的圖形!
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”);
原創文章,作者:OKCV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144371.html
微信掃一掃
支付寶掃一掃