private void Calcola(object sender, EventArgs e) { //controlla l'input dul numero di lati string strLlati = lLati.Text; string strNlati = NumeroLati.Text; //controllo per l'input dei dati if (InputCheckNLati(strNlati) || InputCheckLlati(strLlati)) { DisplayAlert("Attenzione", "Il numero/lunghezza dei lati inserito non è accettato", "Ok"); } else { Poligono figura = new Poligono(Convert.ToDouble(strNlati), Convert.ToDouble(strLlati)); figura.CalcoloApotema(); figura.CalcoloFisso(); figura.CalcoloPerimetro(); figura.CalcoloArea(); //stampa per il nome del calcolo lblRisultatoCol1.Text = $"Risultati:\r\nArea: \r\nPerimetro: \r\nApotema: \r\nNumero fisso: \r\nNome: "; //stampa per i risultati lblRisultatoCol2.Text = $"\r\n{figura.Area:n2} cm^2\r\n{figura.Perimetro:n2} cm\r\n{figura.Apotema:n2} cm\r\n{figura.Fisso:n2}\r\n{figura.Nome()}"; } }
public void drawStar() { double arriba = Math.PI / 2; double derecha = 0; double izquierda = Math.PI; double abajo = 3 * (Math.PI / 2); Poligono p1, p2, p3, p4, p5, centro; centro = p1 = new Poligono(5, Color.Yellow, 0, 0); p1.draw(0.2f, abajo); p1 = new Poligono(3, Color.Yellow, 0, 0.25); p1.draw(0.13f, arriba); //p1.getMatrix(); p2 = new Poligono(3, Color.Yellow, 0.235, 0.08); p2.draw(0.13f, Math.PI / 10); //p2.getMatrix(); p3 = new Poligono(3, Color.Yellow, -0.235, 0.08); p3.draw(0.13f, 2 * Math.PI / 9); //p3.getMatrix(); p4 = new Poligono(3, Color.Yellow, 0.15, -0.20); p4.draw(0.13f, 3 * Math.PI / 8); //p4.getMatrix(); p5 = new Poligono(3, Color.Yellow, -0.15, -0.2); p5.draw(0.13f, 3.05 * Math.PI / 5); //p1.getMatrix(); }
public int SalvarPoligono(int PoligonoId, int CamadaId, string Geojson, bool Ativo = true) { if (PoligonoId == -1) { var poligono = new Poligono() { CamadaId = CamadaId, Geojson = Geojson, Ativo = Ativo }; new PoligonoCore().Inserir(poligono); poligono.Geojson = poligono.Geojson.Replace("\"PoligonoId\":\"-1\"", "\"PoligonoId\":\"" + poligono.Id + "\""); new PoligonoCore().Alterar(poligono); return(poligono.Id); } else { var poligono = new PoligonoCore().RetornarPorId(PoligonoId); poligono.Geojson = Geojson; new PoligonoCore().Alterar(poligono); return(poligono.Id); } }
public void Calculate(Direccion dire, Poligono poly) { if (dire == null && poly == null) { Latitude = 0; Longitude = 0; return; } if (dire != null) { Latitude = dire.Latitud; Longitude = dire.Longitud; } HasPoligono = (poly != null); if (poly != null) { if (dire == null) { Latitude = poly.Centro.Y; Longitude = poly.Centro.X; } Puntos = poly.ToPointFList(); Radio = poly.Radio; MinY = poly.MinY; MaxY = poly.MaxY; MinX = poly.MinX; MaxX = poly.MaxX; CalculateBounds(); } }
/// <summary> /// /// </summary> /// <param name="PerimetroExclusion"></param> /// <param name="Metodo"></param> /// <returns></returns> public bool TriangularMalla(Poligono PerimetroExclusion, List <Linea> LineasRuptura, List <Punto3D> Puntos, TipoTriangulado Metodo = TipoTriangulado.Delaunay) { IList <Triangulo> ResTriang = new List <Triangulo>(); int currentManagedThread = Environment.CurrentManagedThreadId; int processorCount = Environment.ProcessorCount; TriangulacionMultiProceso TrianguladorMultiProceso = new TriangulacionMultiProceso(processorCount) { TipoTriangulado = Metodo, Perimetro = PerimetroExclusion, LineasRuptura = LineasRuptura, Puntos3D = Puntos }; TrianguladorMultiProceso.IniciarProceso(); while (TrianguladorMultiProceso.EstadoProceso == TriangulacionMultiProceso.Estado.EnEjecucion) { System.Threading.Thread.Sleep(300); } if (TrianguladorMultiProceso.EstadoProceso == TriangulacionMultiProceso.Estado.Terminado) { _Resultado = TrianguladorMultiProceso.Resultado.Resultado; _logTriangulacion = TrianguladorMultiProceso.LogMultiProceso; return(true); } else { //Informar de cada uno de los errores que an detenido cada uno de los procesos _logTriangulacion = TrianguladorMultiProceso.LogMultiProceso; return(false); } }
private void btnLeerArchivo_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; try { OpenFileDialog directorio = new OpenFileDialog(); if (directorio.ShowDialog() == System.Windows.Forms.DialogResult.OK) { poligono = new Poligono(directorio.FileName); GMapOverlay polyOverlay = new GMapOverlay("polygons"); List <PointLatLng> points = new List <PointLatLng>(); foreach (UbicacionGeografica punto in poligono.Puntos) { PointLatLng p = new PointLatLng(punto.Latitud, punto.Longitud); points.Add(p); } GMapPolygon polygon = new GMapPolygon(points, "mypolygon"); polygon.Fill = new SolidBrush(Color.FromArgb(50, Color.Red)); polygon.Stroke = new Pen(Color.Red, 1); polyOverlay.Polygons.Add(polygon); gmap.Overlays.Clear(); gmap.Overlays.Add(polyOverlay); gmap.Position = new PointLatLng(poligono.Centro.Latitud, poligono.Centro.Longitud); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } this.Cursor = Cursors.Default; }
private void Button1_Click(object sender, EventArgs e) { Poligono Pol = new Poligono() { Vertices = new List <Punto3D>() }; Pol.Vertices.Add(new Punto3D(13.9617, 0.8461, 0.0)); Pol.Vertices.Add(new Punto3D(7.4365, 7.9198, 0.0)); Pol.Vertices.Add(new Punto3D(10.3867, 11.7687, 0.0)); Pol.Vertices.Add(new Punto3D(23.3678, 13.2597, 0.0)); Pol.Vertices.Add(new Punto3D(24.0542, 7.2840, 0.0)); Pol.Vertices.Add(new Punto3D(33.7109, 4.7990, 0.0)); Pol.Vertices.Add(new Punto3D(32.0390, -1.2920, 0.0)); Pol.Vertices.Add(new Punto3D(20.7450, -2.4724, 0.0)); Triangulacion Triang = new Triangulacion(); if (Triang.TriangularPoligono(Pol, TipoTriangulado.Delaunay)) { //OK IList <Triangulo> LstResultado = Triang.Resultado; } else { //KO } }
public static void Main(string[] args) { Poligono pol = new Poligono(); Ventana ventana = new Ventana(600, 500); ventana.Run(); }
// Start is called before the first frame update void Start() { //se agregan cada uno de los polignos a la lista Polx.Add(pol1); Polx.Add(pol2); Polx.Add(pol3); Polx.Add(pol4); Polx.Add(pol5); Polx.Add(pol6); Polx.Add(pol7); //se lee el archivo de texto con la informacion de los poligonos string path = "Assets/Resources/angulos.txt"; StreamReader reader = new StreamReader(path); string line = ""; try { while ((line = reader.ReadLine()) != null) { //print(line); //se crea un poligono local para luego agregarlo a la lista pol_agregar = new Poligono(); //se separa la informacion del txt y se formatea para la clase string[] subs = line.Split(' '); //print(subs[0]); //print(subs[1]); //esta variable permite identificar cual es el nombre del poligono, para separarlo de los angulos int posicion_contador = 0; //se crea esta variable para darle un largo al arreglo de la cantidad de vertices de cada poligono int cantidad_vertices = subs.Length - 1; double[] angulos_agregar = new double[cantidad_vertices]; int contador_vertices = 0; foreach (string dato in subs) { //si contador es 0 significa que dato es el nombre del poligono if (posicion_contador == 0) { pol_agregar.nombre = dato; posicion_contador++; } else { //se agrega cada uno de los angulos leidos en el txt a angulos_agregar angulos_agregar[contador_vertices] = double.Parse(dato); contador_vertices++; } } //angulos_agregar es un arreglo local el cual ahora se añade a la clase local de poligono pol_agregar.angulos = angulos_agregar; //ahora el objeto poligono local se agrega a un arreglo global de poligonos poligonos_clase.Add(pol_agregar); } } catch (System.Exception e) { print(e); } ordenar_poligonos(); }
public static Poligono transPoligono(Poligono poligono, Matriz matriz) { foreach (Punto punto in poligono.Puntos) { transPunto(punto, matriz); } return(poligono); }
public IList <Triangulo> Triangular(Poligono Perimetro, List <Linea> LineasRuptura, List <Punto3D> Puntos) { //TODO: Algoritmo triangulación Abanico IList <Triangulo> ResTriang = new List <Triangulo>(); return(ResTriang); }
private void Calcularbutton_Click(object sender, EventArgs e) { Poligono area = new Poligono(Convert.ToInt32(LadostextBox.Text), Convert.ToInt32(LongitudtextBox.Text)); Poligono perimetro = new Poligono(Convert.ToInt32(LadostextBox.Text), Convert.ToInt32(LongitudtextBox.Text), Convert.ToInt32(ApotematextBox.Text)); MessageBox.Show(perimetro.ToString()); }
public IList <Triangulo> Triangular(Poligono Perimetro, List <Linea> LineasRuptura, List <Punto3D> Puntos) { //TODO: Algoritmo triangulación Voraz IList <Triangulo> ResTriang = new List <Triangulo>(); //https://es.wikipedia.org/wiki/Algoritmo_de_triangulaci%C3%B3n_voraz return(ResTriang); }
private PointF[] getPointFArray(Poligono poligono) { List <PointF> points = new List <PointF>(); foreach (Punto punto in poligono.Puntos) { points.Add(new PointF((float)punto.X, (float)punto.Y)); } return(points.ToArray()); }
private PuntoEntrega GetNuevoPuntoEntrega(string codigoCliente, string nombreCliente) { var cliente = DaoFactory.ClienteDAO.FindById(IdClienteDefault); var georef = new ReferenciaGeografica { Codigo = codigoCliente, Descripcion = nombreCliente, Empresa = Empresa, EsFin = cliente.ReferenciaGeografica.TipoReferenciaGeografica.EsFin, EsInicio = cliente.ReferenciaGeografica.TipoReferenciaGeografica.EsInicio, EsIntermedio = cliente.ReferenciaGeografica.TipoReferenciaGeografica.EsIntermedio, InhibeAlarma = cliente.ReferenciaGeografica.TipoReferenciaGeografica.InhibeAlarma, TipoReferenciaGeografica = cliente.ReferenciaGeografica.TipoReferenciaGeografica, Vigencia = new Vigencia { Inicio = DateTime.UtcNow }, Icono = cliente.ReferenciaGeografica.TipoReferenciaGeografica.Icono }; var latitud = cliente.ReferenciaGeografica.Latitude; var longitud = cliente.ReferenciaGeografica.Longitude; var posicion = GetNewDireccion(latitud, longitud); var poligono = new Poligono { Radio = 100, Vigencia = new Vigencia { Inicio = DateTime.UtcNow } }; poligono.AddPoints(new[] { new PointF((float)longitud, (float)latitud) }); georef.AddHistoria(posicion, poligono, DateTime.UtcNow); DaoFactory.ReferenciaGeograficaDAO.SaveOrUpdate(georef); var puntoEntrega = new PuntoEntrega { Cliente = cliente, Codigo = codigoCliente, Descripcion = nombreCliente, Telefono = string.Empty, Baja = false, ReferenciaGeografica = georef, Nomenclado = true, DireccionNomenclada = posicion.Descripcion, Nombre = nombreCliente }; DaoFactory.PuntoEntregaDAO.SaveOrUpdate(puntoEntrega); return(puntoEntrega); }
public void dibujarPoligono(Poligono poligono, Punto factorCentro) { if (poligono.Tipo_Poligono == Poligono.TipoPoligono.Abierto) { Gr.DrawLines(Lapiz, getPointFArray(poligono, factorCentro)); } else { Gr.DrawPolygon(Lapiz, getPointFArray(poligono, factorCentro)); } }
public void ReestablecerValores() { poligonoSeleccionado = null; objTri = null; objRom = null; objCua = null; objCir = null; click = false; herramienta = HerramientaSeleccionada.Puntero; lblEstado.Text = $"Herramienta: {herramienta.ToString()}"; }
/// <summary> /// /// </summary> /// <param name="PerimetroPoligono"></param> /// <param name="Metodo"></param> /// <returns></returns> public bool TriangularPoligono(Poligono PerimetroPoligono, TipoTriangulado Metodo = TipoTriangulado.Delaunay) { ITriangulador Triangulador = new Trianguladores.Delaunay.Delaunay(); if (Triangulador != null) { _Resultado = Triangulador.Triangular(PerimetroPoligono, new List <Linea>(), PerimetroPoligono.Vertices); return(true); } else { return(false); } }
public IEnumerable <Geocerca> GetGeocercasFor(int empresaId, int lineaId, Dictionary <int, Direccion> direcciones, Dictionary <int, Poligono> poligonos) { var t = new TimeElapsed(); var sqlQ = Session.CreateSQLQuery("exec [dbo].[sp_getReferenciasGeoVigentes] @company = :company, @branch = :branch;"); sqlQ.SetInt32("company", empresaId); sqlQ.SetInt32("branch", lineaId); sqlQ.SetResultTransformer(Transformers.AliasToBean(typeof(Geocerca))); var results = sqlQ.List <Geocerca>(); STrace.Debug("DispatcherLock", string.Format("sp_getReferenciasGeoVigentes {0} en {1} segundos", results.Count(), t.getTimeElapsed().TotalSeconds)); t = new TimeElapsed(); foreach (var geo in results) { Direccion direccion = null; if (geo.DireccionId != null) { if (direcciones.ContainsKey(geo.DireccionId.Value)) { direccion = direcciones[geo.DireccionId.Value]; } else { STrace.Error("DispatcherLock", string.Format("ERROR DIRECCION NO ENCONTRADA EN CACHE !!! {0} ({1},{2}) ", geo.DireccionId.Value, empresaId, lineaId)); } } Poligono poligono = null; if (geo.PoligonoId != null) { if (poligonos.ContainsKey(geo.PoligonoId.Value)) { poligono = poligonos[geo.PoligonoId.Value]; } else { STrace.Error("DispatcherLock", string.Format("ERROR POLIGONO NO ENCONTRADO EN CACHE !!! {0} ({1},{2}) ", geo.PoligonoId.Value, empresaId, lineaId)); } } if (direccion != null || poligono != null) { geo.Calculate(direccion, poligono); } } STrace.Debug("DispatcherLock", string.Format("geo.Calculate {0} en {1} segundos", results.Count(), t.getTimeElapsed().TotalSeconds)); return(results); }
private void CalcularPerimetroButton_Click(object sender, EventArgs e) { try { int numLados = Convert.ToInt32(NumeroLadosMaskedText.Text); double longLados = Convert.ToDouble(LongitudTextBox.Text); Poligono poligono = new Poligono(numLados, longLados); MessageBox.Show(poligono.ToString()); } catch (Exception error) { MessageBox.Show(error.ToString()); } }
private void Confronta(object sender, EventArgs e) { string strNLati = NumeroLati.Text; string strLLati = lLati.Text; double Nlati = Convert.ToDouble(strNLati); double Llati = Convert.ToDouble(strLLati); Poligono figura = new Poligono(Nlati, Llati); Poligono personale = new Poligono(4, 7); lblRisultatoCol1.Text = $"Poligo di confronto: \r\nLati: \r\nLunghezza lato: \r\n\r\nL'esito del confronto"; lblRisultatoCol2.Text = $"\r\n{personale.NLati}\r\n{personale.LLati}\r\n\r\n{figura.Confronta(personale)}"; DrawPrint(Nlati); }
public IList <Triangulo> Triangular(Poligono Perimetro, List <Linea> LineasRuptura, List <Punto3D> Puntos) { //TODO: Algoritmo triangulación Delaunay IList <Triangulo> ResTriang = new List <Triangulo>(); //Condición de Delaunay //Analisis.AnalisisGeometrico.PuntoCircunscrito(Triangulo,Ptest) //el espacio se divide en el número de procesadores de la máquina y se lanzan sucesivos thread para resolver cada una de las zonas //Según terminan se van uniendo y resolviendo cada una de las divisiones en función de cuando terminen return(ResTriang); }
protected override void OnRenderFrame(FrameEventArgs e) { base.OnRenderFrame(e); //poligono(3, 0.5f, Color.Azure); casa = new Poligono(4, Color.Black, 0, 0); /////Pi/4 es la medida para ponerlo derecho casa.draw(0.5f, Math.PI / 4); //casa.getMatrix(); //drawStar(); SwapBuffers(); }
private ReferenciaGeografica GetNewGeoRef(Empresa empresa, Linea linea, string codigo, string descripcion, double latitud, double longitud, string codigoTipo) { var tipo = DaoFactory.TipoReferenciaGeograficaDAO.FindByCodigo(new[] { empresa.Id }, new[] { linea != null ? linea.Id : -1 }, codigoTipo); if (tipo == null) { ThrowProperty("TIPO_PUNTO_ENTREGA"); } var puntoDeInteres = new ReferenciaGeografica { Codigo = codigo, Descripcion = descripcion, Empresa = empresa, Linea = linea, TipoReferenciaGeografica = tipo, Vigencia = new Vigencia { Inicio = DateTime.UtcNow, Fin = DateTime.UtcNow }, Icono = tipo.Icono }; var posicion = GetNewDireccion(latitud, longitud); var poligono = new Poligono { Radio = 50, Vigencia = new Vigencia { Inicio = DateTime.UtcNow } }; poligono.AddPoints(new[] { new PointF((float)longitud, (float)latitud) }); puntoDeInteres.Historia.Add(new HistoriaGeoRef { ReferenciaGeografica = puntoDeInteres, Direccion = posicion, Poligono = poligono, Vigencia = new Vigencia { Inicio = DateTime.UtcNow } }); DaoFactory.ReferenciaGeograficaDAO.SingleSaveOrUpdate(puntoDeInteres); STrace.Trace("QtreeReset", "PuntoEntregaBV1 2"); return(puntoDeInteres); }
public Form1() { p1 = new Poligono(new Punto(0, 0)); p1.addPunto(new Punto(-30, 10)); p1.addPunto(new Punto(-10, 10)); p1.addPunto(new Punto(-10, -10)); p1.addPunto(new Punto(-30, -10)); p1.addPunto(new Punto(-30, 10)); p2 = new Poligono(new Punto(0, 0)); p2.addPunto(new Punto(-30, 10)); p2.addPunto(new Punto(-20, 20)); p2.addPunto(new Punto(-10, 10)); p3 = new Poligono(new Punto(0, 0)); p3.addPunto(new Punto(-20, 20)); p3.addPunto(new Punto(10, 20)); p3.addPunto(new Punto(20, 10)); p3.addPunto(new Punto(-20, 10)); p4 = new Poligono(new Punto(0, 0)); p4.addPunto(new Punto(20, 10)); p4.addPunto(new Punto(20, -10)); p4.addPunto(new Punto(-30, -10)); o = new Objeto(new Punto(0, 0)); o.addPoligono(p1); o.addPoligono(p2); o.addPoligono(p3); o.addPoligono(p4); ot = new Objeto(new Punto(0, 0)); ot.addPoligono(p1); ot.addPoligono(p2); ot.addPoligono(p3); ot.addPoligono(p4); esc = new Escenario(new Punto(0, 0)); esc.addObj(ot); l = new Dibujo(); t = new Transformacion(); InitializeComponent(); }
private IList <PuntoDePoligono> ObtenerPuntosDePoligono(Poligono poligono) { DbParameter[] parameters = { new OAParameter { ParameterName = "@POLYGON_ID", Value = poligono.POLYGON_ID }, new OAParameter { ParameterName = "@EXTERNAL_SOURCE_ID", Value = poligono.EXTERNAL_SOURCE_ID } }; return(BaseDeDatosServicio.ExecuteQuery <PuntoDePoligono>(BaseDeDatosServicio.Esquema + ".OP_WMS_SP_GET_POINTS_BY_POLYGON", CommandType.StoredProcedure, false, parameters).ToList()); }
private PoligonoCollection GerarPoligonos(Decimal[] elem_info, Decimal[] ordinates, int dimensoes, int eixoLrs, bool multiplo) { PoligonoCollection poligonoCollection = new PoligonoCollection(); int triplet = 0; bool ehLrs = eixoLrs != 0; while (triplet < elem_info.Length) { if (elem_info[triplet + 1] == new Decimal(1005) || elem_info[triplet + 1] == new Decimal(1003)) { try { Anel anel1 = this.GerarAnel(elem_info, ordinates, dimensoes, eixoLrs, ref triplet); Poligono poligono = new Poligono(ehLrs ? dimensoes - 1 : dimensoes, ehLrs); if (anel1 == null) { throw new Exception("Falha ao ler o anel externo"); } poligono.Aneis.Adicionar(anel1); triplet += 3; while (triplet < elem_info.Length && (elem_info[triplet + 1] == new Decimal(2005) || elem_info[triplet + 1] == new Decimal(2003))) { Anel anel2 = this.GerarAnel(elem_info, ordinates, dimensoes, eixoLrs, ref triplet); if (anel2 == null) { throw new Exception("Falha ao ler o anel interno"); } poligono.Aneis.Adicionar(anel2); triplet += 3; } triplet -= 3; poligonoCollection.Adicionar(poligono); } catch { } if (!multiplo) { return(poligonoCollection); } } triplet += 3; } return(poligonoCollection); }
private static void AgregarReporteDeClientesEnSector(IPolygonStatisticsVista vista, PoligonoArgumento e) { if (!vista.ReporteClientesEnSector.Count.Equals(0)) { return; } vista.ReporteClientesEnSector = new List <Poligono>(); var temporal = new Poligono { POLYGON_ID = e.Poligono.POLYGON_ID , POLYGON_TYPE = e.Poligono.POLYGON_TYPE , POLYGON_NAME = e.Poligono.POLYGON_NAME }; vista.ReporteClientesEnSector.Add(temporal); }
private void SetDireccion(ReferenciaGeografica geoRef, IList <DireccionVO> nomencladas) { if (nomencladas.Count == 1) { var direccionNomenclada = nomencladas[0]; var dir = new Direccion { Altura = direccionNomenclada.Altura, Calle = direccionNomenclada.Calle, Descripcion = direccionNomenclada.Direccion.Truncate(128), IdCalle = direccionNomenclada.IdPoligonal, IdEntrecalle = -1, IdEsquina = direccionNomenclada.IdEsquina, IdMapa = (short)direccionNomenclada.IdMapaUrbano, Latitud = direccionNomenclada.Latitud, Longitud = direccionNomenclada.Longitud, Pais = "Argentina", Partido = direccionNomenclada.Partido, Provincia = direccionNomenclada.Provincia, Vigencia = new Vigencia { Inicio = DateTime.Now } }; var pol = new Poligono { Radio = 100, Vigencia = new Vigencia { Inicio = DateTime.Now } }; pol.AddPoints(new[] { new PointF((float)dir.Longitud, (float)dir.Latitud) }); geoRef.AddHistoria(dir, pol, DateTime.UtcNow); } }
public float menorY(Objeto o) { float menor = float.MaxValue; float actual; for (int j = 0; j < o.ListaPoligonos.Count; j++) { Poligono p = o.ListaPoligonos[j]; for (int k = 0; k < p.ListaPuntos.Count; k++) { actual = p.ListaPuntos[k].Y + p.CentroPol.Y + o.CentroObj.Y; if (actual < menor) { menor = actual; } } } return(menor); }
public double Resolver(double lados, double Lvalor,string Operacion) { if (Operacion.Equals("P") || Operacion.Equals("A")) { Poligono resolver = new Poligono(); if (Operacion.Equals("P")) { return resolver.ResolverPerimetro(lados, Lvalor); } else { return resolver.ResolverArea(lados,Lvalor); } } return 0; }
public void CalcularAreasPoligono(Poligono poligono) { poligono.setArea((poligono.getNumeroLado()* poligono.getLadoA()* poligono.getApotema())/2); }
public void CalcularApotemaPoligono(Poligono poligono) { poligono.setAngulo(360 / poligono.getNumeroLado()); poligono.setApotema(poligono.getLadoA()/ (2 * Math.Tan(poligono.getAngulo() / 2))); }
private void btnProcesar_Click(object sender, EventArgs e) { Poligono figura = new Poligono(float.Parse(txtAltura.Text),float.Parse(txtBase.Text)); lbTexto.Text =figura.ToString() ; }