#! /bin/bash 

sigma="0.05"
omg0="0.10"
omg1="0.05"
K="1.5"

Gi="0.01"
Si="0.4"    # Para o plot em função do albedo.
alb="0.5"   # Para o plot em função de {Si}

gnuplot <<EOF

set term postscript eps color solid linewidth 2 "TimesRoman" 24
set size 2,2

# Parâmetros do modelo:
sigma = ${sigma} # Desvio padrão dos erros de medida.
omg0 = ${omg0}   # Probabilidade do ponto {p} ter sombreamento.
omg1 = ${omg1} # Probabilidade do ponto {p} ter highlight.
K = ${K}
Gi = ${Gi}   # Intensidade observada no ponto do gabarito com a normal certa.

call "${HOME}/Raab/Versoes_${VERSAO_RAAB}/lib/plot_ProbSiGia_lib.gpl"

#----------------------------------------------------------------------
# Plota o modelo contínuo para a FDP  {Pr(S[i]|G[i],alb)} em função de {Si}

# Dados da instância:
set output "Pr_cont_Si.eps"
alb = ${alb} # Albedo do ponto {p} cena (relativo ao albedo do gabarito = 1).

set xrange [0:1] # Range para {Si}.
set yrange [0:*] # Range para a FDP.

set title "Pr(S[i] | G[i],alb)"
set xlabel "Si"
set ylabel "Pr(Si)"

plot (P(x,alb)) title "Pr total" with lines lt 1, \
     (E(x,alb)) title "Pr if shadowed" with lines lt 4, \
     (H(x,alb)) title "Pr if highlight" with lines lt 3, \
     (G(x,alb)) title "Pr if normal" with lines lt 8

unset output

#----------------------------------------------------------------------
# Plota o modelo contínuo para a FDP  {Pr(S[i]|G[i],alb)} em função de {alb}


# Dados da instância:
set output "Pr_cont_alb.eps"
Si = ${Si}   # Intensidade observada no ponto {p} da cena.

set xrange [0:1] # Range para {alb}.
set yrange [0:*] # Range para a FDP.

set title "Pr(S[i] | G[i],alb)"
set xlabel "alb"
set ylabel "Pr(Si)"

plot (P(Si,x)) title "Pr total" with lines lt 1, \
     (E(Si,x)) title "Pr if shadowed" with lines lt 4, \
     (H(Si,x)) title "Pr if highlight" with lines lt 3, \
     (G(Si,x)) title "Pr if normal" with lines lt 8

unset output

#----------------------------------------------------------------------
# Plot aproximações em função de {Si}:

# Dados da instância:
set output "Pr_appr_Si.eps"
alb = ${alb} # Albedo do ponto {p} cena (relativo ao albedo do gabarito = 1).

set xrange [0:1] # Range para {Si}.
set yrange [0:*] # Range para a FDP.

set title "Pr(S[i] | G[i],alb)"
set xlabel "Si"
set ylabel "Pr(Si)"

plot (P(x,alb)) title "Pr cont" with lines lt 1, \
     (PD(x,alb)) title "Pr appr D" with lines lt 3, \
     (PF(x,alb)) title "Pr appr E" with lines lt 8

unset output

set view 30,310
set ticslevel 0

#----------------------------------------------------------------------
# Plot aproximações em função de {alb}:

# Dados da instância:
set output "Pr_appr_alb.eps"
Si = ${Si}   # Intensidade observada no ponto {p} da cena.

set xrange [0:1] # Range para {alb}.
set yrange [0:*] # Range para a FDP.

set title "Pr(S[i] | G[i],alb)"
set xlabel "alb"
set ylabel "Pr(Si)"

plot (P(Si,x)) title "Pr cont" with lines lt 1, \
     (PD(Si,x)) title "Pr appr D" with lines lt 3, \
     (PF(Si,x)) title "Pr appr E" with lines lt 8

unset output

set view 30,310
set ticslevel 0

#----------------------------------------------------------------------
# Plot 3D (contínuo) em função de {Si} e {alb}:

# Dados da instância:
set output "Pr_cont_Si_alb.eps"

set xrange [0:1] # Range para {Si}.
set yrange [0:1] # Range para {alb}.
set zrange [0:*] # Range para a FDP.
set isosamples 50,50

set title "Pr(S[i] | G[i],alb)"
set xlabel "alb"
set ylabel "Si"
set zlabel "Pr(Si)"

set hidden3d

splot (P(y,x)) title "Pr"

unset output


#----------------------------------------------------------------------
# Plot 3D (aproximação) em função de {Si} e {alb}:

# Dados da instância:
set output "Pr_appr_Si_alb.eps"

set xrange [0:1] # Range para {Si}.
set yrange [0:1] # Range para {alb}.
set zrange [0:*] # Range para a FDP.
set isosamples 50,50

set title "Pr(S[i] | G[i],alb)"
set xlabel "alb"
set ylabel "Si"
set zlabel "Pr(Si)"

set hidden3d

splot  (PF(y,x)) title "Pr"

unset output


EOF
display -resize '200%' Pr_{cont,appr}_Si_alb.eps Pr_{cont,appr}_Si.eps Pr_{cont,appr}_alb.eps  


# # Teste da erf(c) 
# gnuplot <<EOF
# 
# set term X11
# # Variáveis e funções auxiliares (modelo constante-por-partes)
# KC=1.0
# Norm=erf(KC/sqrt(2))/(2*KC)
# G(x) = exp(-x*x/2)/(sqrt(2*pi))
# C(x) = (abs(x) > KC ? 0 : Norm)
# 
# # MORAL: erf(x/sqrt(2)) é a integral da gaussiana de -x a +x
# D(x) = (erf((x+0.01)/sqrt(2))-erf((x-0.01)/sqrt(2)))/0.02
# set xrange [-2:+2]
# plot G(x) with lines, C(x) with lines, D(x)/2 with lines
# pause 300
# 
# EOF

