亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? drawer.java

?? 天線陣列的涉及軟件
?? JAVA
字號:
/*
 *	Drawer
 *
 *	Canvas for showing attributes of designed antenna 
 *
 *	Meirong He
 *	EEE Department
 *	University of Sheffield
 *	July 2005
 */

import java.awt.*;
import java.awt.event.*;

public class Drawer extends Canvas {
	
	private Dimension size;
	private Graphics gs;
	private int border,xMin,yMin,xMax,yMax,xDelta,yDelta;
	private int minimumDB=-30;     //Bottom limit in dB
	
	public void paint (Graphics g) {
		size=getSize();
		border=size.width/15;
		xMin=border;yMin=border;
		xMax=size.width-border;
		yMax=size.height-border;	
		clear();
	}
	
	public void clear() {
		gs=getGraphics();
		gs.setColor(Color.pink);
		gs.fillRect(0,0,size.width-1, size.height-1);
		gs.setColor(Color.white);
		gs.fillRect(border, border, size.width-2*border, size.height-2*border);
	}
	
	public void drawArrayFactor(ArrayFactor power) {
		
		xDelta=xMax-xMin;
		yDelta=yMax-yMin;
		
		double top=0.0;
		for (int j=0; j<power.N; j++) 	top=top+Math.abs(power.I[j].modu);
		top=20.0*Math.log(top)/Math.log(10);
		
		System.out.println("top="+top+" DB");
		System.out.println("at 0 degree="+power.getAmplitude(0));
		System.out.println("at 45 degree="+power.getAmplitude(45*Math.PI/180));
		System.out.println("at 90 degree="+power.getAmplitude(90*Math.PI/180));
		System.out.println("at 180 degree="+power.getAmplitude(180*Math.PI/180));
							//Printing in command window to check correctness of ploting

		double xRange=Math.PI;
		double yRange=top-minimumDB;
		double xZero=xMin*1.0;
		double yZero=yMax+minimumDB*yDelta/yRange;
		
		gs=getGraphics();
		gs.setColor(Color.black);
		gs.drawString("Power(dB) vs. field point angle(degree)", (int)(xMin+xDelta/20.0),(int)(yMin-border/3.0));
		
		int yLevels=(int)((top-minimumDB)/5.0);
		double yStep=yDelta*5.0/yRange;
		for (int j=0; j<=yLevels; j++) {
			gs.setColor(Color.gray);
			gs.drawLine((int)xZero,(int)(yMin+j*yStep), xMax, (int)(yMin+j*yStep));
			gs.setColor(Color.black);
			gs.drawString(""+5*j, (int)(border/2.5), (int)(yMin+j*yStep+5));	
		}							//Draw y coordinates and labels
		
		double xStep=xDelta*45.0/180.0;
		for (int k=0; k<=(int)(180/45); k++) {
			gs.setColor(Color.gray);
			gs.drawLine((int)(k*xStep+xMin),yMin,(int)(k*xStep+xMin),yMax);
			gs.setColor(Color.black);
			gs.drawString(""+45*k,(int)(k*xStep+xMin-8),(int)(yMax+border/2.5));
		}							//Draw x coordinates and labels
		
		
		gs.setColor(Color.blue);
		double dy, yMaxValue=power.getAmplitude(0);
		int xStart=(int)xZero;
		int yStart=Math.min(yMax,(int)(yZero-power.getAmplitude(0)*yDelta/yRange));
		int xDueTop=0, xPt=xStart, yPt=yStart;
		
		for (int dx=0; dx<=180; dx++) {
			dy=power.getAmplitude(dx*Math.PI/180.0);
			if (dy<=minimumDB) dy=minimumDB;
			xPt=(int)(xZero+dx*xDelta/180.0);
			yPt=(int)(yZero-dy*yDelta/yRange);
			gs.drawLine(xStart,yStart,xPt,yPt);
			xStart=xPt;
			yStart=yPt;	
			
			yMaxValue=Math.max(yMaxValue, dy);
			if (yMaxValue==dy) xDueTop=dx;
								//Find out max value and its position
		}
		
		int x3dbLeft=xDueTop, x3dbRight=xDueTop;
		double v3db=top-3, vLeft=top, vRight=top;
		
		do {
			x3dbLeft=x3dbLeft-1;	
			vLeft=power.getAmplitude(x3dbLeft*Math.PI/180.0);			
		}while((vLeft-v3db)>0.000001 && x3dbLeft>=0);
		
		do{	
			x3dbRight++;
			vRight=power.getAmplitude(x3dbRight*Math.PI/180.0);	
		}while((vRight-v3db)>0.000001 && x3dbRight<=180);
		
		int beamWidth3db=x3dbRight-x3dbLeft;
		String db3="BW: "+beamWidth3db +" degree";
		gs.drawString(db3, (int)(xMin+x3dbRight*xDelta/180),(int)(yZero-v3db*yDelta/yRange));
								//Find out 3dB beam width
		
	}
	
	public void drawGeometry(ArrayFactor power) {
		
		xDelta=Math.min(xMax-xMin,yMax-yMin);
		yDelta=xDelta;
		
		double top=0.0;
		for (int j=0; j<power.N; j++) 	top=top+power.I[j].modu;
		top=20.0*Math.log(top)/Math.log(10);
		
		double xRange=2*(top-minimumDB);
		double yRange=xRange;
		double xZero=xMin+(xMax-xMin)/2;
		double yZero=yMin+(yMax-yMin)/2;
		gs=getGraphics();
		gs.setColor(Color.black);
		gs.drawString("Geometry radiation pattern vs. field point angle (degree)", xMin,(int)(yMin-border/4.0));
		gs.drawString("0", (int)(xMin+(xMax-xMin)/2.0+2), yMin+10);
		gs.drawString("90", xMax-15, (int)(yMin+(yMax-yMin)/2.0-2));
		gs.drawString("+-180", (int)(xMin+(xMax-xMin)/2.0+2), yMax-2);
		gs.drawString("-90", xMin+2, (int)(yMin+(yMax-yMin)/2.0-2));
		gs.drawLine((int)xMin,(int)yZero,xMax,(int)yZero);
		gs.drawLine((int)xZero,yMin,(int)xZero,yMax);
							//Put position information
		
		gs.setColor(Color.blue);
		
		int xStart=(int)xZero, yStart=(int)yZero, xPt=(int)xZero, yPt=(int)yZero;
		
		for (int dx=-180; dx<180+1; dx++) {
			double dy=power.getAmplitude(dx*Math.PI/180.0);
			if (dy<=minimumDB) dy=minimumDB;
			xPt=(int)(xZero+(dy-minimumDB)*Math.sin(dx*Math.PI/180.0)*xDelta/xRange);
			yPt=(int)(yZero-(dy-minimumDB)*Math.cos(dx*Math.PI/180.0)*yDelta/yRange);
			
			gs.drawLine(xStart,yStart,xPt,yPt);
			xStart=xPt;
			yStart=yPt;		
		}
							//Draw geomitrical radiation pattern
	}
	
	public void drawFeedingNet(double[][] sectl, int N, int V) {
		
		gs=getGraphics();
		
		boolean odd;
		int P=N;
		double xStart=xMin+border/2; 
		double yStart, yStop, yStartStep, yEndStep, xStep=0;
		
		gs.setColor(Color.black);
		gs.drawString("Feeding line lengths (mm)", (int)(xMin+(xMax-xMin)/5.0),(int)(yMin-border/3.0));
		
		if(N==1 || N==0) {
			gs.drawLine((int)(xMin+(xMax-xMin)/3.0), (int)(yMin+(yMax-yMin)/2.0),(int)(xMin+(xMax-xMin)*2/3.0), (int)(yMin+(yMax-yMin)/2.0));
			gs.drawString("No need of feeding net",(int)(xMin+(xMax-xMin)/3.0), (int)(yMin+(yMax-yMin)/2.0));
		}
		else xStep=(xMax-xMin-2*border/2)/V;
							//Exclude N=1 and N=0 when no feeding network needed.
		
		for (int k=0; k<V; k++) {
			
			yStartStep=(yMax-yMin)/P; 
			yEndStep=(yMax-yMin)/(int)Math.ceil(P/2.0);
			yStart=yMin+yStartStep/2;
			yStop=yMin+yEndStep/2;
		
			odd=P%2!=0;
			
			for (int i=0; i<P; i++) {
				
				if(odd) {
					if(i==2) 
						yStop=yStop+yEndStep;
					else if (i>2)
						yStop=yStop+(0.5-0.5*Math.pow(-1,i))*yEndStep;	
				}
				else {
					if(i!=0)
					yStop=yStop+(0.5+0.5*Math.pow(-1,i))*yEndStep;				
				}
				
				gs.drawLine((int)xStart, (int)yStart, (int)(xStart+xStep), (int)yStop);	
				double length=(int)(sectl[i][k]*1000000+0.5)/1000.0;
				gs.drawString(""+length, (int)(xStart+xStep/3.0), (int)(yStart+(yStop-yStart)/2.0-3));
				yStart=yStart+yStartStep;
			}	
			
			xStart=xStart+xStep;
			P=(int)Math.ceil(P/2.0);
		}
							//Draw feeding net work with line length
	}
	
	public void drawTransformer(double[][] Z1, double[][] Z2, double[][] w1, double[][] w2, int N, int V, double L, double R0, double R) {
		
		gs=getGraphics();
		
		String word;
		boolean odd;
		int P=N;
		
		gs.setColor(Color.black);
		gs.drawString("Transformer arm impedances (omh) and widths (mm)", (int)(xMin+(xMax-xMin)/5.0),(int)(yMin-border/3.0));
		
		word="R0="+R0+" omh, R="+R+" omh"; 
		gs.drawString(word, (int)(xMin+(xMax-xMin)/10), (int)(yMin+(yMax-yMin)/20));
		word="Transformer arm length="+(int)(L*10000+0.5)/10.0+" mm";
		gs.drawString(word, (int)(xMin+(xMax-xMin)/10), (int)(yMin+(yMax-yMin)/10));
							//Show relevant information 
		
		double yDown=yMin+(yMax-yMin)/10;
		double xStart=xMin+border/2; 
		double yStart, yStop, yStartStep, yEndStep, xStep=0;
	
		if(N==1 || N==0) {
			gs.drawLine((int)(xMin+(xMax-xMin)/3.0), (int)(yMin+(yMax-yDown)/2.0),(int)(xMin+(xMax-xMin)*2/3.0), (int)(yMin+(yMax-yDown)/2.0));
			gs.drawString("No need of feeding net",(int)(xMin+(xMax-xMin)/3.0), (int)(yMin+(yMax-yDown)/2.0));
		}
		else xStep=(xMax-xMin-2*border/2)/V;
		
		for (int k=0; k<V; k++) {
			
			yStartStep=(yMax-yDown)/P; 
			yEndStep=(yMax-yDown)/(int)Math.ceil(P/2.0);
			yStart=yDown+yStartStep/2;
			yStop=yDown+yEndStep/2;
		
			odd=P%2!=0;
			
			for (int i=0; i<P; i++) {
				
				if(odd) {
					if(i==0) word="Zin="+(int)(Z1[0][k]*10+0.5)/10.0+" w="+(int)(w1[0][k]*10+0.5)/10.0;
					else if(i==1) word="Zin="+(int)(Z2[0][k]*10+0.5)/10.0+" w="+(int)(w2[0][k]*10+0.5)/10.0;
					else if(i==2) {
						yStop=yStop+yEndStep;
						word="Zin=R0";
					}	
					else if (i>2) {	
						if(i%2!=0) word="Zin="+(int)(Z1[(int)Math.ceil(i/2.0)][k]*10.0+0.5)/10.0+" w="+(int)(w1[(int)Math.ceil(i/2.0)][k]*10.0+0.5)/10;
						else word="Zin="+(int)(Z2[(int)Math.ceil(i/2.0)][k]*10+0.5)/10.0+" w="+(int)(w2[(int)Math.ceil(i/2.0)][k]*10+0.5)/10.0;
						yStop=yStop+(0.5-0.5*Math.pow(-1,i))*yEndStep;	
					}
					
				}
				else {
					if(i!=0) yStop=yStop+(0.5+0.5*Math.pow(-1,i))*yEndStep;	
					if(i%2==0)	word="Zin="+(int)(Z1[(int)(i/2.0)][k]*10.0+0.5)/10.0+" w="+(int)(w1[(int)(i/2.0)][k]*10.0+0.5)/10.0;		
					else word="Zin="+(int)(Z2[(int)(i/2.0)][k]*10.0+0.5)/10.0+" w="+(int)(w2[(int)(i/2.0)][k]*10.0+0.5)/10.0;			
				}
				gs.setColor(Color.pink);
				gs.drawLine((int)xStart, (int)yStart, (int)(xStart+xStep), (int)yStop);	
				gs.setColor(Color.blue);
				gs.drawString(word, (int)(xStart+xStep/6.0), (int)(yStart+(yStop-yStart)/2.0));
				yStart=yStart+yStartStep;
			}	
			
			xStart=xStart+xStep;
			P=(int)Math.ceil(P/2.0);
		}	
							//Draw feeding network with transformer arm characteristic impedance and width
	}	
	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品伦理在线| 中文字幕一区在线观看视频| 一本大道av伊人久久综合| 制服.丝袜.亚洲.中文.综合| 麻豆成人久久精品二区三区红| 免费在线观看成人| 捆绑调教一区二区三区| 日本亚洲最大的色成网站www| 亚洲靠逼com| 一区二区三区在线视频免费观看| 一二三四区精品视频| 在线看国产日韩| 久久美女高清视频| 日本午夜精品一区二区三区电影 | 欧美精品一区视频| 成人精品视频一区二区三区尤物| 国产精品福利电影一区二区三区四区| 91美女片黄在线观看91美女| 日韩精品一二三四| 国产欧美日韩视频一区二区| 91官网在线观看| 裸体健美xxxx欧美裸体表演| 国产精品美女久久久久aⅴ| 欧美视频你懂的| 久久国产麻豆精品| 日韩伦理免费电影| 欧美精品 日韩| 国产精品一区二区三区99| 亚洲精品免费看| 26uuu亚洲综合色| 一本一本大道香蕉久在线精品| 婷婷成人综合网| 中文字幕av一区二区三区| 欧美色精品在线视频| 国产一区二区看久久| 亚洲精品videosex极品| 欧美精品一区二区三区蜜臀 | 91丝袜国产在线播放| 日本不卡高清视频| 国产精品久99| 337p日本欧洲亚洲大胆精品| 欧美伊人久久大香线蕉综合69 | 午夜影院久久久| 亚洲国产精品二十页| 日韩亚洲电影在线| 欧美在线观看禁18| 国产成人福利片| 日本中文字幕一区二区视频| 亚洲免费毛片网站| 欧美一级片免费看| www.欧美亚洲| 国产一区不卡视频| 五月综合激情日本mⅴ| 国产精品久久毛片a| 日韩欧美一二三区| 欧美视频第二页| 一本色道亚洲精品aⅴ| 国产高清不卡一区| 国产在线精品一区二区三区不卡| 亚洲bt欧美bt精品777| 亚洲精品中文在线影院| 国产精品久久午夜夜伦鲁鲁| 国产亚洲一区二区三区四区 | 欧美亚洲国产一区在线观看网站 | 国产欧美精品在线观看| 一区二区欧美国产| 亚洲午夜一区二区| 中文字幕日韩欧美一区二区三区| 欧美电影免费提供在线观看| 欧美理论在线播放| 欧美日韩国产高清一区二区三区| 色妹子一区二区| 一本到不卡免费一区二区| 成人午夜碰碰视频| 成人精品亚洲人成在线| 国产成人亚洲综合a∨猫咪| 国产高清久久久久| 成人国产精品免费| 成人av网站大全| 91性感美女视频| 色婷婷综合久久久中文一区二区 | 国产精品夜夜嗨| 久久成人18免费观看| 久久精品国产77777蜜臀| 久久超碰97中文字幕| 久久99精品久久久久久| 蜜桃av噜噜一区| 日韩精品欧美精品| 九色综合狠狠综合久久| 麻豆国产欧美日韩综合精品二区| 免费一级片91| 国产老妇另类xxxxx| 丁香亚洲综合激情啪啪综合| 不卡电影一区二区三区| 色妹子一区二区| 欧美日韩mp4| 欧美videos中文字幕| 久久精品一区四区| 亚洲色图制服诱惑 | 欧美久久一二区| 欧美人与z0zoxxxx视频| 精品日韩99亚洲| 国产精品青草久久| 亚洲永久免费视频| 国模无码大尺度一区二区三区| 不卡一区二区在线| 欧美三级欧美一级| 久久免费午夜影院| 亚洲精品免费视频| 精东粉嫩av免费一区二区三区| av一区二区三区在线| 欧美精品黑人性xxxx| 国产日韩v精品一区二区| 一区二区三区 在线观看视频 | 亚洲自拍偷拍综合| 精品一区二区久久| 色婷婷综合视频在线观看| 欧美不卡一区二区| 一区二区三区日韩欧美| 另类小说一区二区三区| 色综合天天天天做夜夜夜夜做| 日韩一级大片在线| 亚洲日本青草视频在线怡红院| 免费在线观看一区| 91免费精品国自产拍在线不卡| 日韩欧美色电影| 一个色妞综合视频在线观看| 国产福利一区二区三区视频 | 午夜久久久久久电影| 懂色av噜噜一区二区三区av | 久久综合一区二区| 亚洲成人1区2区| 99久久综合精品| 日韩欧美亚洲国产另类| 亚洲综合色噜噜狠狠| 成人黄色免费短视频| 精品国产1区二区| 日韩和欧美一区二区| 91视频在线观看免费| 久久久午夜精品| 蜜臀久久久久久久| 欧美日韩在线综合| 亚洲女人****多毛耸耸8| 国产a精品视频| 精品福利一区二区三区| 美女高潮久久久| 欧美一区二区三区小说| 香蕉成人啪国产精品视频综合网| 99久久婷婷国产综合精品| 久久精品日韩一区二区三区| 极品少妇xxxx精品少妇| 日韩亚洲欧美在线| 日本三级亚洲精品| 欧美日本免费一区二区三区| 亚洲人成网站色在线观看| www.视频一区| 国产精品久久久久久久久免费丝袜| 精一区二区三区| 欧美第一区第二区| 六月丁香婷婷色狠狠久久| 欧美一级二级三级蜜桃| 免费亚洲电影在线| 欧美一区二区视频在线观看| 日韩主播视频在线| 制服丝袜亚洲精品中文字幕| 天堂成人国产精品一区| 777xxx欧美| 捆绑紧缚一区二区三区视频| 日韩精品综合一本久道在线视频| 美日韩一区二区三区| 精品精品国产高清a毛片牛牛| 毛片一区二区三区| 久久久夜色精品亚洲| 国产成人午夜电影网| 国产精品欧美一级免费| 97精品久久久午夜一区二区三区| 亚洲女同ⅹxx女同tv| 欧美日韩国产综合草草| 免费成人av资源网| 久久综合一区二区| 成人h精品动漫一区二区三区| 日韩理论片中文av| 欧美影院精品一区| 久久国产夜色精品鲁鲁99| 久久精品亚洲乱码伦伦中文| 国产69精品一区二区亚洲孕妇| 中文字幕日本不卡| 欧美日韩小视频| 九九视频精品免费| 国产精品电影一区二区三区| 欧美私模裸体表演在线观看| 免费精品视频在线| 欧美高清一级片在线观看| 在线免费观看日韩欧美| 日本午夜一区二区| 国产精品乱码一区二三区小蝌蚪| 欧亚一区二区三区| 韩国精品主播一区二区在线观看 | 日本精品免费观看高清观看| 日韩在线a电影|