Option Explicit
'Script written by 
'Script copyrighted by 
'Script version martes, 11 de agosto de 2009 9:37:31

' Procedimiento que imprime los dos puntos introducidos por el usuario
' por orden de mas cercano al origen.
Sub Main()
	Dim punto1, punto2, d1, d2
	
	punto1 = Rhino.GetPoint("Punto 1: ")
	punto2 = Rhino.GetPoint("Punto 2: ")
	
	d1 = (punto1(0)^2 + punto1(1)^2 + punto1(2)^2)^0.5
	d2 = (punto2(0)^2 + punto2(1)^2 + punto2(2)^2)^0.5
	
	If d1 > d2 Then
		Rhino.Print punto2(0) & ", " & punto2(1) & ", " & punto2(2)
		Rhino.Print punto1(0) & ", " & punto1(1) & ", " & punto1(2)
	Else
		Rhino.Print punto1(0) & ", " & punto1(1) & ", " & punto1(2)
		Rhino.Print punto2(0) & ", " & punto2(1) & ", " & punto2(2)
	End If
End Sub

' Lo mismo con el anterior pero con las funciones de la libreria.
Sub Main2()
	Dim punto1, punto2, d1, d2, puntoOrigen
	
	punto1 = Rhino.GetPoint("Punto 1: ")
	punto2 = Rhino.GetPoint("Punto 2: ")
	puntoOrigen = Array(0, 0, 0)
	
	d1 = Rhino.Distance(puntoOrigen, punto1)
	d2 = Rhino.Distance(puntoOrigen, punto2)
	
	If d1 > d2 Then
		Rhino.Print Rhino.Pt2Str(punto2)
		Rhino.Print Rhino.Pt2Str(punto1)
	Else
		Rhino.Print Rhino.Pt2Str(punto1)
		Rhino.Print Rhino.Pt2Str(punto2)
	End If
	
End Sub

' Lo mismo que el anterior pero con 3 puntos.
' Además añade una polilinea que empezando en el origen pasa por
' los 3 puntos.

Sub Main3()
	Dim punto1, punto2, punto3, auxPunto, d1, d2, d3, auxD, po
	
	
	punto1 = Rhino.GetPoint("Punto 1: ")
	punto2 = Rhino.GetPoint("Punto 2: ")
	punto3 = Rhino.GetPoint("Punto 3: ")
	po = Array(0, 0, 0)
	
	d1 = Rhino.Distance(po, punto1)
	d2 = Rhino.Distance(po, punto2)
	d3 = Rhino.Distance(po, punto3)
	
	
	If d3 < d2 Then
		' Intercambiamos las distancias
		auxD = d3
		d3 = d2
		d2 = auxD
		' Intercambiamos los puntos correspondientes
		auxPunto = punto3
		punto3 = punto2
		punto2 = auxPunto
	End If
		
	If d2 < d1 Then
		auxD = d2
		d2 = d1
		d1 = auxD
		auxPunto = punto2
		punto2 = punto1
		punto1 = auxPunto
	End If
	
	If d3 < d2 Then
		' Intercambiamos las distancias
		auxD = d3
		d3 = d2
		d2 = auxD
		' Intercambiamos los puntos correspondientes
		auxPunto = punto3
		punto3 = punto2
		punto2 = auxPunto
	End If
	
	Rhino.Print Rhino.pt2str(punto1)
	Rhino.Print Rhino.Pt2Str(punto2)
	Rhino.print Rhino.Pt2Str(punto3)
	
	Rhino.AddLine po, punto1
	Rhino.AddLine punto1, punto2 
	Rhino.AddLine punto2, punto3
	
End Sub

Mas ejemplos de if - else. Taras siento el retraso, la próxima vez los colgaré al acabar la clase.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *