elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Pirámide 3D sin usar apis
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Pirámide 3D sin usar apis  (Leído 6,101 veces)
<[(x)]>

Desconectado Desconectado

Mensajes: 215



Ver Perfil
Pirámide 3D sin usar apis
« en: 5 Noviembre 2008, 01:42 am »

Hola:
         Aka les dejo mi ultimo proyecto estaba al p2 como siempre en la escuela y se me ocurrió.

Y aka les dejo todo el código.

Código:

'------------------------------->
'Agregar controles:             |
'1 HScrollbar llamado  HScroll1 |
'2 CheckBox: Check1,Check2      |
'2 Trimer: Trimer1,Trimer2      |
'y pegar este code en el formx  |
'------------------------------->
Private Const PIE = 3.14159265 / 100 'el nº 100 es el que multiplicado por dos da las dicviciones que tiene una buelta

Private Th As Single 'variable que almasena el angulo

Private R2 As Single 'radio de la sircunferencia
                     'algirar la pirame, los puntos de la base siguen una circunferencia
                     
'las siguientes variables son el centro de dicha circunferencia
Private Lx2 As Single
Private Ly2 As Single

'esta pequeña funcion es la encargada de pasar _
 del sistyema tridimencional z;x;y a el que nos brionda vb x;y.
Private Sub PL(z As Long, x As Long, y As Long, z1 As Long, x1 As Long, y1 As Long, Optional a As Integer = 45)
'si somos un poco observadores el eje z es una line inclinada a un angulo w que forma un *triangulo* con x y y
'
'               | +y                 | +y
'               |    /+z             |    /+z
'               |   /                |   /
'               |  /                 |  /|
'               | /                  | / |
'               |/___________        |/__|_______
'                            +x                 +x
'
'esta funcion se basa en eso.

Dim zz As Long, zz1 As Long, x2 As Long, y2 As Long, y11 As Long, x11 As Long, a1 As Integer

If a > 89 Then MsgBox "ERROR:  variable exedida de valor", vbCritical, "FATAL-ERROR!!|"
'calcula el angulo
'             __ __             o
'a= angulo de go;gl             /|
a1 = 90 - a '  __ __           / |
'a1= angulo de gl,ol          /  |
'                          g /___| l
                         
'estas dos lineas son para que se vea real.
'en este ejemplo labase es un cuadrado y se ve bien
'prueven sacando los multiplicadores "*0.5"
zz = z * 0.5
zz1 = z1 * 0.5
                   
'calcula x e y, con la funcion trigonometrica seno aplicando el teorema del seno

x2 = (Sin(a) * zz) + x
x11 = (Sin(a) * zz1) + x1
y2 = (Sin(a1) * zz) + y
y11 = (Sin(a1) * zz1) + y1

'dibuja la linea invertiendo el eje y
Me.Line (x2, Me.Height / 15 - y2)-(x11, Me.Height / 15 - y11)

End Sub

Private Sub Check2_Click() 'no se explica.
If Timer2.Enabled = False Then
Timer2.Enabled = True
Else
Timer2.Enabled = False
End If
End Sub

Private Sub Form_Load() 'prepara todo.
R2 = 100
Lx2 = 150
Ly2 = 150

configurarControles

Me.BackColor = vbBlack
Me.AutoRedraw = True
Me.ScaleMode = 3
Me.Caption = "Piramide 3D"
End Sub
Private Sub configurarControles()
Check2.BackColor = vbBlack
Check1.BackColor = vbBlack
Check2.ForeColor = vbWhite
Check1.ForeColor = vbWhite
Check2.Caption = "Timer2.Enabled=False"
Check1.Caption = "Me.Cls"
HScroll1.Max = 1000
HScroll1.Value = 1
HScroll1.Min = 1
End Sub

Private Sub HScroll1_Change() 'cambia velocidad
Timer1.Interval = HScroll1.Value
End Sub

Private Sub HScroll1_Scroll() 'cambia velocidad
Timer1.Interval = HScroll1.Value
End Sub

Private Sub Timer1_Timer() 'calcula los puntos y los dibuja.
Dim x As Long, y As Long, x1 As Long, y1 As Long, x2 As Long, y2 As Long, x3 As Long, y3 As Long

Th = Th + PIE 'angulo++

'establesen a x,x1,y,y1 sus balores correspondientes en la circunferencia
x = Lx2 + Cos(Th) * R2
y = Ly2 + Sin(Th) * R2
x1 = Lx2 - Cos(Th) * R2
y1 = Ly2 - Sin(Th) * R2
x2 = Lx2 + Cos(Th - PIE * 250) * R2 'el nº 250 separa los dos pares de puntos de la base
y2 = Ly2 + Sin(Th - PIE * 250) * R2 'que comparten un eje en comun
x3 = Lx2 - Cos(Th - PIE * 250) * R2
y3 = Ly2 - Sin(Th - PIE * 250) * R2

DoEvents
If Check1.Value Then Me.Cls 'si esta activado borra el dibujo del form

'<piramide
'manda a pintar las lineas de la base
 
 Me.ForeColor = &HFF0000 'cambia color  a azul
PL x1, y1, 100, x2, y2, 100
PL x2, y2, 100, x, y, 100
PL x, y, 100, x3, y3, 100
PL x3, y3, 100, x1, y1, 100

'manda a pintar las lineas que unen la base de la piramide con la punta
PL x1, y1, 100, 175, 125, 200
PL x2, y2, 100, 175, 125, 200
PL x3, y3, 100, 175, 125, 200
PL x, y, 100, 175, 125, 200

'piramide>

Me.ForeColor = 16777215 'cambia color  a blanco

Me.CurrentX = 100
Me.CurrentY = 10
Me.Print "made by <[(x)]>" 'firma

Me.CurrentX = 30
Me.CurrentY = Me.Height / 15 - 80
Me.Print "Intervalo: " & HScroll1.Value & " mili(s) segundo(s)." 'dato extra
'piramide>

Me.Refresh 'refresca el form

End Sub

Private Sub Timer2_Timer() 'no se explica.

If Check1.Value = 1 Then
Check1.Value = 0
Else
Check1.Value = 1
End If

End Sub
' se termino

Si alguien ve algo que este mal o pueda y tenga ganas de perfeccionarlo les agradecería que lo haga.

Y para el que no entiende la forma en que lo programe are el esfuerzo por explicarlo, aunque creo que esta bastante claro.


                        chauchass...!|<[(x)]>|!

<[(modificado)]>


« Última modificación: 5 Noviembre 2008, 22:42 pm por <[(x)]> » En línea

<[(x)]>
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Pirámide 3D sin usar apis
« Respuesta #1 en: 5 Noviembre 2008, 01:52 am »

yo no veo nada... :xD


En línea

<[(x)]>

Desconectado Desconectado

Mensajes: 215



Ver Perfil
Re: Pirámide 3D sin usar apis
« Respuesta #2 en: 5 Noviembre 2008, 01:55 am »

mmm

a me falto decirles que pongan la propiedad autoredraw del fom en true.

(modifi)
JAJA tienen, coco tenes razon pasenlo a escala plixel.
 
« Última modificación: 5 Noviembre 2008, 21:36 pm por <[(x)]> » En línea

<[(x)]>
el_c0c0


Desconectado Desconectado

Mensajes: 307


Ver Perfil
Re: Pirámide 3D sin usar apis
« Respuesta #3 en: 5 Noviembre 2008, 02:04 am »

esta bien pero es muy chiquito

saludos
En línea

'-     coco
"Te voy a romper el orto"- Las hemorroides
vivachapas


Desconectado Desconectado

Mensajes: 612



Ver Perfil
Re: Pirámide 3D sin usar apis
« Respuesta #4 en: 5 Noviembre 2008, 02:25 am »

muy muy bueno... nunca habia visto algo asi (excepto en el protector de pantalla claro xD)
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Pirámide 3D sin usar apis
« Respuesta #5 en: 5 Noviembre 2008, 05:00 am »


xD 10 ja

aun que si uno en realidad desea manejar perfectamente graficos 3D esta OpenGl o DirectX (susderivados como 3D o Draw xp para 2D)
En línea

The Dark Shadow is my passion.
Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Pirámide 3D sin usar apis
« Respuesta #6 en: 5 Noviembre 2008, 12:17 pm »

Está bien el ejemplo, a mí me ha gustado. Pero te recomendaría que siguieses algunas normas de estilo: que indentes un poco tu código, que dejes algunas líneas en blanco de separación para procesos diferentes y sigas más o menos un esquema de forma sistemática porque sino es un lío para la persona que lee el código.

Un saludo!
En línea

‭‭‭‭jackl007


Desconectado Desconectado

Mensajes: 1.403


[UserRPL]


Ver Perfil WWW
Re: Pirámide 3D sin usar apis
« Respuesta #7 en: 5 Noviembre 2008, 17:45 pm »

 a mi tambien me ha gustado mucho, voy a guardar tu source, eso es lo bueno de estudiar las matematicas, porque se pueden aplicar en distintas cosas....

Saludos
En línea

kennylive

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Pirámide 3D sin usar apis
« Respuesta #8 en: 5 Noviembre 2008, 17:50 pm »

Está bien el ejemplo, a mí me ha gustado. Pero te recomendaría que siguieses algunas normas de estilo: que indentes un poco tu código, que dejes algunas líneas en blanco de separación para procesos diferentes y sigas más o menos un esquema de forma sistemática porque sino es un lío para la persona que lee el código.

Un saludo!
totalmente de acuerdo...
En línea

vivachapas


Desconectado Desconectado

Mensajes: 612



Ver Perfil
Re: Pirámide 3D sin usar apis
« Respuesta #9 en: 5 Noviembre 2008, 18:29 pm »

si a mi tb me cuesta mucho entenderlo xD... me gustaria q lo expliques :P:P
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como se veria la pirámide en tu ciudad
Foro Libre
[u]nsigned 0 1,680 Último mensaje 11 Enero 2012, 05:32 am
por [u]nsigned
(Duda) Piramide completa en batch. Estructuración.
Scripting
zero-cool22 1 3,702 Último mensaje 30 Enero 2014, 21:26 pm
por Meine programmen
Piramide de asteriscos
Programación C/C++
yuna88 4 13,381 Último mensaje 12 Abril 2014, 14:56 pm
por yuna88
Una pirámide de codicia
Noticias
wolfbcn 0 1,503 Último mensaje 6 Julio 2014, 22:21 pm
por wolfbcn
Aprender a usar APIS
Programación C/C++
str0nghack 8 4,768 Último mensaje 8 Agosto 2017, 16:23 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines