Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Poligono Regular

Preguntas y respuestas sobre el lenguaje de programacion C/C++

Poligono Regular

Notapor jahc el Mié Abr 13, 2005 1:09 am

Necesito un algoritmo para dibujar un poligono regular en c++ builder
Mike
jahc
Novato
Novato
 
Mensajes: 3
Registrado: Jue Abr 07, 2005 3:30 am

Re: dibujar un poligono regular en c++ builder

Notapor waltico el Vie May 27, 2005 8:55 am

Hola :evil:

No se aconstumbre a que otros hagan la tarea por Ud., no podemos ayudarle si ud no tiene nada avanzado, y ni tiene ida como puede graficar un poligono.

Al menos piense en el algoritmo y luego comente como podemos ayudarle a solucionar su problema con el algoritmo que esta usando.

:twisted:
by: Oscar Walther Huanca Torres
Web: http://waltico.wordpress.com
E-Mail: walticogt + yahoo.com
Avatar de Usuario
waltico
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 138
Registrado: Sab Jun 21, 2003 4:04 pm
Ubicación: Puno - Perú

Re: Poligono Regular

Notapor latindeveloper el Vie May 27, 2005 9:26 am

Waltico tiene razon.

Pero podemos hacer algo si nos dices de que manera quieres dibujar los poligonos.

Tienes ya la manera de obtener cada vertice?
Que parametros o variables se dispone para poder dibujarlo?

Etc... hay muchas cosas que faltan especificar..
Imagen
Avatar de Usuario
latindeveloper
Administrador
Administrador
 
Mensajes: 1061
Registrado: Lun Jun 02, 2003 8:29 pm
Ubicación: Peru

Notapor jahc el Vie May 27, 2005 4:50 pm

les agradesco a latindeveloper y awalticogt haberme intentado ayudar pero en ese monmento lo pedi asi porque nunca habia intentado trabajar con grafico solo aplicaciones ok
pero me di cuenta que cuando uno quiere puede ok

ya que no supieron responderme les mando para el que lo nesecite como lo nesecitaba yo la forma de como hacer un poligono regular en C++
a mi forma ok ya esta probado y pincha en talla el codigo les pinta un poligono regular dentro de una circunferencia de la cantidad de lados que deseen ok bye

// Unit2.h

//---------------------------------------------------------------------------

#ifndef Unit2H
#define Unit2H
#include<Math.h>
class CPunto{
private:
int x;
int y;
public:
CPunto();
void SetX(int);
void SetY(int);
int GetX();
int GetY();
};
class CPoligono_R{
private:
int cant_lados;
int long_lado;
float r_CSE;
CPunto* ArrPtos;
public:
CPoligono_R();
CPunto Get_Pto(int);
float Calculate_RCSE();
int GetCant_Lados();
void Find_Lista_Ptos();
int GetLong_Lado();
void SetCant_Lados(int);
void SetLong_Lado(int);
};

//---------------------------------------------------------------------------
#endif

// Unit2.cpp

//---------------------------------------------------------------------------
#pragma hdrstop
#include "Unit2.h"
#include<Math.h>
#define pi 3.14
//implementaciones de la clase cpoligono_r
CPoligono_R::CPoligono_R(){
ArrPtos=new CPunto[100];
}
void CPoligono_R::SetCant_Lados(int acant){
cant_lados=acant;
}
void CPoligono_R::SetLong_Lado(int alongitud){
long_lado=alongitud;
}
int CPoligono_R::GetCant_Lados(){
return cant_lados;
}
int CPoligono_R::GetLong_Lado(){
return long_lado;
}
float CPoligono_R::Calculate_RCSE(){
r_CSE=long_lado*sin((pi-(2*pi/cant_lados))/2)/sin(2*pi/cant_lados);
return r_CSE;
}
CPunto CPoligono_R::Get_Pto(int pos){
return ArrPtos[pos];
}

void CPoligono_R::Find_Lista_Ptos(){
for(int i=0; i<cant_lados; i++){
ArrPtos[i].SetX(r_CSE+r_CSE*cos(i*((2*pi)/cant_lados)));
ArrPtos[i].SetY(r_CSE+r_CSE*sin(i*((2*pi)/cant_lados)));
}
}

//--------------------------------------------------


//implementaciones de la clase cpunto.....
CPunto::CPunto(){
}
void CPunto::SetX(int ax){
x=ax;
}
void CPunto::SetY(int ay){
y=ay;
}
int CPunto::GetX(){
return x;
}
int CPunto::GetY(){
return y;
}

//---------------------------------------------------------------------------

#pragma package(smart_init)


//evento onclik de boton graficar

void __fastcall TForm1::Button1Click(TObject *Sender){
if((Edit1->Text=="")||(Edit1->Text==""))
ShowMessage("debe llenar los datos de entrada");
else{
pol1.SetCant_Lados(StrToInt(Edit1->Text));
pol1.SetLong_Lado(StrToInt(Edit2->Text));
Edit3->Text=pol1.Calculate_RCSE();
pantalla->Canvas->Ellipse(0,0,pol1.Calculate_RCSE()*2,pol1.Calculate_RCSE()*2);
pol1.Find_Lista_Ptos();
for(int i=0; i<pol1.GetCant_Lados(); i++){
pantalla->Canvas->MoveTo(pol1.Get_Pto(i).GetX(),pol1.Get_Pto(i).GetY());
if(i==pol1.GetCant_Lados()-1){
pantalla->Canvas->LineTo(pol1.Get_Pto(0).GetX(),pol1.Get_Pto(0).GetY());
break;
}
pantalla->Canvas->LineTo(pol1.Get_Pto(i+1).GetX(),pol1.Get_Pto(i+1).GetY());

}

}
}

Nota : se daran cuenta que hay funciones en el .h implementadas en el cpp que no hacen falta para graficar yo las puse porque queria hacer otra cosa en mi visual que calculara radio etc .......ok
espero les sirva
Mike
jahc
Novato
Novato
 
Mensajes: 3
Registrado: Jue Abr 07, 2005 3:30 am


Volver a C/C++

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron