123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- function get_planet_pixels(X ::Int64, Y ::Int64)
- pix ::Array{Tuple{Int64,Int64}} = []
- for i = X-1:X+1
- for j = Y-3:Y+3
- push!(pix,(i,j))
- end
- end
- for i = Y-2:Y+2
- push!(pix,(X-2,i))
- push!(pix,(X+2,i))
- end
- for i = Y-1:Y+1
- push!(pix,(X-3,i))
- push!(pix,(X+3,i))
- end
- return pix
- end
- function is_inside(t ::Tuple{Int64,Int64}, width ::Int64, height ::Int64)
- if (t[1] > 0 && t[1] <= width && t[2] > 0 && t[2] <= height)
- return true
- else
- return false
- end
- end
- function graph_planets(pixels ::Array{Array{Int64}}, positions ::Matrix{Float64}, min_value ::Float64, max_value ::Float64, width ::Int64, height ::Int64, file_name ::String)
- n = size(positions)[2]
- for i = 1:n
- X ::Int64= round( ( (positions[1, i] - min_value) / (max_value - min_value) ) * (width - 1) ) + 1
- Y ::Int64= round( (1 - ( (positions[2, i] - min_value) / (max_value - min_value) ) ) * (height - 1) ) + 1
- pix ::Array{Tuple{Int64,Int64}} = get_planet_pixels(X,Y)
- for pixel in pix
- if is_inside(pixel, width, height)
- pixels[(pixel[2] - 1)*width + pixel[1]] = [125, round(255*i/n)]
- end
- end
- end
- open(file_name,"w") do f
- write(f, "P3\n$width $height\n255\n")
- for he = 1:height
- for wi = 1:width
- write(f, "$(pixels[(he - 1)*width + wi][1]) 0 $(pixels[(he - 1)*width + wi][2]) ")
- end
- write(f,"\n")
- end
- end
- end
- # function graph_planets(pixels ::Array{Array{Int64}}, positions ::Vector{Vector{Float64}}, min_value ::Float64, max_value ::Float64, width ::Int64, height ::Int64, file_name ::String)
- # n = length(positions)
- # for i = 1:n
- # X ::Int64= round( ( (positions[i][1] - min_value) / (max_value - min_value) ) * (width - 1) ) + 1
- # Y ::Int64= round( (1 - ( (positions[i][2] - min_value) / (max_value - min_value) ) ) * (height - 1) ) + 1
- # pix ::Array{Tuple{Int64,Int64}} = get_planet_pixels(X,Y)
- # for pixel in pix
- # if is_inside(pixel, width, height)
- # pixels[(pixel[2] - 1)*width + pixel[1]] = [125, round(255*i/n)]
- # end
- # end
- # end
- # open(file_name,"w") do f
- # write(f, "P3\n$width $height\n255\n")
- # for he = 1:height
- # for wi = 1:width
- # write(f, "$(pixels[(he - 1)*width + wi][1]) 0 $(pixels[(he - 1)*width + wi][2]) ")
- # end
- # write(f,"\n")
- # end
- # end
- # end
|