Skip to content

Instantly share code, notes, and snippets.

@neosergio
Last active January 1, 2016 16:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save neosergio/8172395 to your computer and use it in GitHub Desktop.
Save neosergio/8172395 to your computer and use it in GitHub Desktop.
Jugando con Ruby: Algoritmo simple sobre un contenedor y una imagen que se ajusta al tamaño del contenedor dinamicamente
puts "De las siguientes opciones del tamaño del contenedor"
puts "1 - Ancho contenedor 200 - Alto contenedor 100"
puts "2 - Ancho contenedor 100 - Alto contenedor 200"
puts "3 - Dejame ingresar los valores manualmente del contenedor"
print "Elija su preferencia: "
STDOUT.flush
opcion = gets.to_i
if opcion == 1
ancho_contenedor = 200
alto_contenedor = 100
elsif opcion == 2
ancho_contenedor = 100
alto_contenedor = 200
elsif opcion == 3
print "Ingrese el ancho del contenedor: "
ancho_contenedor = gets.to_f
print "Ingrese el alto del contenedor: "
alto_contenedor = gets.to_f
if ancho_contenedor <= 0 or alto_contenedor <= 0
puts "El ancho o alto de la imagen no puede ser cero ni invalido"
abort
end
else
puts "La opción ingresada no es valida, intentelo luego"
abort
end
puts "El contenedor es de #{ancho_contenedor} x #{alto_contenedor}"
print "Ingrese el ancho y el alto de la imagen (en ese orden): "
ancho_imagen = gets.to_f
alto_imagen = gets.to_f
if ancho_imagen <= 0 or alto_imagen <= 0
puts "Uno de los valores ingresados no es valido"
abort
end
proporcion_contenedor = ancho_contenedor.to_f / alto_contenedor.to_f
proporcion_imagen = ancho_imagen / alto_imagen
puts "Proporcion del contenedor: #{proporcion_contenedor}, Proporcion de la imagen: #{proporcion_imagen}"
if ancho_imagen <= ancho_contenedor and alto_imagen <= alto_contenedor
print "la imagen va como tal, no hay resize"
nuevo_ancho_imagen = ancho_imagen
nuevo_alto_imagen = alto_imagen
elsif proporcion_contenedor > 1
if proporcion_imagen > 1
nuevo_ancho_imagen = ancho_contenedor
nuevo_alto_imagen = nuevo_ancho_imagen / proporcion_imagen
if nuevo_alto_imagen > alto_contenedor
nuevo_alto_imagen = alto_contenedor
nuevo_ancho_imagen = nuevo_alto_imagen * proporcion_imagen
end
else
nuevo_alto_imagen = alto_contenedor
nuevo_ancho_imagen = nuevo_alto_imagen * proporcion_imagen
end
else
if proporcion_imagen > 1
nuevo_ancho_imagen = ancho_contenedor
nuevo_alto_imagen = nuevo_ancho_imagen / proporcion_imagen
else
nuevo_alto_imagen = alto_contenedor
nuevo_ancho_imagen = nuevo_alto_imagen * proporcion_imagen
if nuevo_ancho_imagen > ancho_contenedor
nuevo_ancho_imagen = ancho_contenedor
nuevo_alto_imagen = nuevo_ancho_imagen / proporcion_imagen
end
end
end
puts "Las nuevas dimensiones son #{nuevo_ancho_imagen} x #{nuevo_alto_imagen}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment