[RUBY] Diviser en nombres arbitraires à partir de la latitude et de la longitude du nord, du sud, de l'est et de l'ouest

#Combien de divisions verticales et horizontales
DEVIDE_COUNT = 7 

#Valeur médiane du tableau
cneter_index = (DEVIDE_COUNT / 2) + (DEVIDE_COUNT % 2)

#Est, ouest, sud et nord
origin_n = 0
origin_s = 50
origin_w = 100
origin_e = 200

north_south_unit = (origin_s - origin_n).fdiv(DEVIDE_COUNT)
west_east_unit = (origin_e - origin_w).fdiv(DEVIDE_COUNT)

#Division du nord au sud et de l'ouest à l'est_le rang augmente à mesure que la distance du centre augmente
Mesh = Struct.new(:nl, :sl, :el, :wl, :distance_rank)
results = []
(1..DEVIDE_COUNT).each do |ns_count|
  (1..DEVIDE_COUNT).each do |ew_count|
    results << Mesh.new(
      origin_n + (north_south_unit * (ns_count -1)),
      origin_n + (north_south_unit * ns_count),
      origin_w + (west_east_unit * (ew_count -1)),
      origin_w + (west_east_unit * ew_count),
      (cneter_index  - ns_count).abs + (cneter_index - ew_count).abs
    )
  end
end

pp results.sort_by(&:distance_rank)

Recommended Posts

Diviser en nombres arbitraires à partir de la latitude et de la longitude du nord, du sud, de l'est et de l'ouest
Divisez la liste en nombres arbitraires
ArrayList et le rôle de l'interface vu depuis List
Langage Java du point de vue de Kotlin et C #