ptrc_one_sample_vis-2d.wls 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/usr/bin/env wolframscript -local
  2. (* ::Package:: *)
  3. (* ::Input:: *)
  4. fileName="one_case_data-2d.txt";
  5. generateNewCase=1;
  6. imageSize=800;
  7. Import["sample_data_parser.wl"]
  8. rangeX={Min[Table[dat[C][[i,1]]-dat[R][[i]],{i,1,dat[n]}]],
  9. Max[Table[dat[C][[i,1]]+dat[R][[i]],{i,1,dat[n]}]]};
  10. rangeY={Min[Table[dat[C][[i,2]]-dat[R][[i]],{i,1,dat[n]}]],
  11. Max[Table[dat[C][[i,2]]+dat[R][[i]],{i,1,dat[n]}]]};
  12. graphColors={Darker[Red],Darker[Green],Darker[Blue],Darker[Cyan],
  13. Darker[Magenta],Darker[Yellow],Darker[Brown],Darker[Orange],
  14. Darker[Pink],Darker[Purple],
  15. LightRed,LightGreen,LightBlue,LightCyan,LightMagenta,LightYellow,
  16. LightBrown,LightOrange,LightPink};
  17. lambdaFunc[pPnt_]:=-Sum[
  18. Abs[EuclideanDistance[pPnt,dat[C][[i]]]-dat[R][[i]]],{i,1,dat[n]}];
  19. heatMapGraph=DensityPlot[lambdaFunc[{x,y}],{x,rangeX[[1]],rangeX[[2]]},
  20. {y,rangeY[[1]],rangeY[[2]]},AspectRatio->{1,1},(*PlotLegends->Automatic,*)
  21. ColorFunction->"Rainbow",ImageSize->imageSize];
  22. inhSize=ImageDimensions[heatMapGraph];
  23. circlesGraph=Graphics[Table[{
  24. Thickness[Medium],graphColors[[i]],Circle[dat[C][[i]],dat[R][[i]]]},
  25. {i,1,dat[n]}],ImageSize->inhSize];
  26. centersGraph=Graphics[Table[{
  27. Thickness[Large],graphColors[[i]],Point[dat[C][[i]]]},{i,1,dat[n]}],
  28. ImageSize->inhSize];
  29. routesGraphs=Table[Graphics[{
  30. Thickness[Medium],Black,Line[{Table[rts[[j]][[i]][P],
  31. {i,1,Length[rts[[j]]]}]}]},ImageSize->inhSize],{j,1,Length[rts]}];
  32. stFinGraphs=Table[Graphics[{
  33. {Thickness[Medium],Inset[Style["\[CircleTimes]",20],rts[[j,1]][P]]},
  34. {Thickness[Medium],Black,Circle[rts[[j,Length[rts[[j]]]]][P],0.05]},
  35. {Thickness[Large],Black,Point[rts[[j,Length[rts[[j]]]]][P]]}
  36. },ImageSize->inhSize],{j,1,Length[rts]}];
  37. bestGuessGraph=Graphics[{
  38. Thickness[Large],Darker[Purple],Inset[Style["+",20],bestGuess[P]]},
  39. ImageSize->inhSize];
  40. realPointGraph=Graphics[{
  41. Thickness[Large],Darker[Purple],Inset[Style["*",20],dat[realPoint]]}
  42. ,ImageSize->inhSize];
  43. listOfGraphs=Table[Labeled[Show[heatMapGraph,centersGraph,circlesGraph,
  44. routesGraphs[[i]],stFinGraphs[[i]],
  45. bestGuessGraph,realPointGraph],
  46. "Maximum of sensors uncertainty: "<>
  47. ToString[dat[unc]]<>
  48. "; Number of known spheres: "<>ToString[dat[n]]<>
  49. ";\nStart point #"<>ToString[i]<>
  50. "; Final error: "<>ToString[dat[error]]],
  51. {i,1,Length[rts]}]
  52. Table[Export["sample_start_point_"<>ToString[i]<>".png",listOfGraphs[[i]],
  53. OverwriteTarget->True],{i,1,Length[rts]}]
  54. (*Table[Export["sample_start_point_"<>ToString[i]<>".svg",listOfGraphs[[i]],
  55. OverwriteTarget->True],{i,1,Length[rts]}]*)