12/06/11 11:15
anomalo
Salve ho scritto il seguente codice che considera come oggetto un segmento e calcola in punti di intersezione con un altro segmento
tuttavia non riesce a calcolare il punto e mi dice sempre che non ci sono punti di intersezione nonostante questa parte di codice estrapolato giri bene
Ho fatto un pò di prove e nel primo codice che ho postato quando faccio il ciclo each lui non mi considera tutti gli elementi dell'array ma solo il primo sapreste spiegarmi il motivo?
grazie a tutti
class Segment def initialize(xi,yi,xf,yf) @xi=xi.to_i @yi=yi.to_i @xf=xf.to_i @yf=yf.to_i end #definisco metodo che calcola punti di intersezione tra due segmenti def intersection_point(xi2,yi2,xf2,yf2) if @xi<=@xf rangex = (@xi..@xf) else rangex=(@xf..@xi) end array_x=rangex.to_a #------------------ if @yi<=@yf rangey=(@yi..@yf) else rangey=(@yf..@yi) end array_y=rangey.to_a #------------------ #------------------ if xi2<=xf2 rangex2 = (xi2..xf2) else rangex2=(xf2..xi2) end array_x2=rangex2.to_a #------------------ if yi2<=yf2 rangey2=(yi2..yf2) else rangey2=(yf2..yi2) end array_y2=rangey2.to_a #------------------ #---------- array_x.each do |elementx1| array_x2.each do |elementx2| array_y.each do |elementy1| array_y2.each do |elementy2| if elementx1 == elementx2 and elementy1== elementy2 return "cordinate punto di intersezione = #{elementx1},#{elementy1}" else return "i due segmenti non hanno punti di intersezione" end end end end end end end ab=Segment.new(2,2,6,2) puts ab.intersection_point(3,0,3,8)
tuttavia non riesce a calcolare il punto e mi dice sempre che non ci sono punti di intersezione nonostante questa parte di codice estrapolato giri bene
array_x=[2,3,4,5,6] array_y =[2] array_x2= [3] array_y2= [0,1,2,3,4,5,6,7,8] array_x.each do |elementx1| array_x2.each do |elementx2| array_y.each do |elementy1| array_y2.each do |elementy2| if elementx1 == elementx2 and elementy1== elementy2 puts elementx1,elementy1 end
Ho fatto un pò di prove e nel primo codice che ho postato quando faccio il ciclo each lui non mi considera tutti gli elementi dell'array ma solo il primo sapreste spiegarmi il motivo?
grazie a tutti
aaa