Esempio n. 1
0
		/// <summary>
		/// Plot
		/// </summary>
		/// <param name="dc"></param>
		/// <param name="fin"></param>
		/// <param name="penna"></param>
		public override void Plot(Graphics dc, Finestra fin, Pen penna)
			{
			if(IsValid)
				{
				Point2D bassosx, altodx, diag_meta;
				float alfini, alffin, alfswp;

				diag_meta = new Point2D( this.Radius, this.Radius);
				bassosx = this.Center - diag_meta;
				altodx = this.Center + diag_meta;
				
				if(IsCircle)
					{
					Point bsx, adx;
					bsx = fin.Get(bassosx);
					adx = fin.Get(altodx);
					int xm,ym,xM,yM;
					xm = Math.Min(bsx.X, adx.X);
					xM = Math.Max(bsx.X, adx.X);
					ym = Math.Min(bsx.Y, adx.Y);
					yM = Math.Max(bsx.Y, adx.Y);

					Rectangle rct = new Rectangle(new Point(xm,ym), new Size(xM-xm,yM-ym));
					dc.DrawEllipse(penna,rct);
					}
				else
					{
					Point start, end, center, bsx, adx;
					start = fin.Get(this.pStart);
					end = fin.Get(this.pEnd);
					center = fin.Get( this.Center);
					bsx = fin.Get(bassosx);
					adx = fin.Get(altodx);
					int xm,ym,xM,yM;
					xm = Math.Min(bsx.X, adx.X);
					xM = Math.Max(bsx.X, adx.X);
					ym = Math.Min(bsx.Y, adx.Y);
					yM = Math.Max(bsx.Y, adx.Y);

					Rectangle rct = new Rectangle(new Point(xm,ym), new Size(xM-xm,yM-ym));

					// Cambiati segni e scambiati ini con fin...
					alffin = (float)(-this.AlfaIni*180/Math.PI);
					alfini = (float)(-this.AlfaFin*180/Math.PI);
				
					if(alfini < 0.0)
						alfini = 360.0F + alfini;
					if(alffin < 0.0)
						alffin = 360.0F + alffin;			// alfaini e alfafin corretti e concordi

					if(alffin >= alfini)					// calcolo sweep
						alfswp = alffin - alfini;
					else
						alfswp = 360.0F-alfini + alffin;

					dc.DrawArc(penna,rct,alfini,alfswp);
					}
				}
			}
Esempio n. 2
0
		/// <summary>
		/// Disegna
		/// </summary>
		/// <param name="dc"></param>
		/// <param name="fin"></param>
		/// <param name="penna"></param>
		public override void Plot(Graphics dc, Finestra fin, Pen penna)
			{
			if(IsValid)
				{
				Point start, end;
				start = fin.Get(this.pStart);
				end = fin.Get(this.pEnd);
				dc.DrawLine(penna,start,end);
				}
			}
Esempio n. 3
0
		/// <summary>
		/// Da completare
		/// </summary>
		/// <param name="dc"></param>
		/// <param name="fin"></param>
		/// <param name="penna"></param>
		public override void Plot(Graphics dc, Finestra fin, Pen penna)
			{
			#warning SorgenteOttica.Plot da provare !
			if(IsValid)
				{
				Point start, end;

				Point2D vettore = lineaRaggio.Vector();					// Direzione
				//double alfa = vettore.Alfa();							// Angolo
				Point2D normale = vettore.Normal();						// Normale
				Point2D vmeta = normale * diametro * 0.5;				// Vettore di meta` lunghezza 

				Point2D pp, pm;
				pp = lineaRaggio.P1 + vmeta;							// Origini
				pm = lineaRaggio.P1 - vmeta;

				start = fin.Get(pp);
				end = fin.Get(pm);
				dc.DrawLine(penna,start,end);
				
				dc.DrawLine(penna,start,end);
				}
			}