As the title suggests it, I`m looking for the best solution for creating a 2D or a 3D graphic simulator. I need to build a program that simulates the behavior of some custom solar panels (how the rays fall on the surface of the panels, what happens if the panels are rotated etc). The main problem is that it has to be done in a very short amount of time and depending on how big the difference between the 2D and the 3D one will be (in terms of needed time for completion), I will choose the most appropriate solution. The program has to create also some charts based on the input data.
Thus, I`m interested looking for you suggestions in regard to which one of the aforementioned languages would provide the best and easiest to use tools (for both the 2D and the 3D one), and a good combination of the final code complexity, ease of the graphic design and final appearance.
If you don't have much time you should choose the language you know better. 
Personally I'd go for python because I think it's a very productive language. To do the rendering I'd rely on the module pygame. Nevertheless there are numerous possible libraries that can do what you need. I've used XNA a while ago and it was a real pleasure. Especially its support for 2d graphics is excellent. On the bottom-line I guess it boils down to this:
Python is "working pseudo code". It will allow you to code the logic very efficiently. Pygame however is a 3d game library. It's great for creating games and visualizations but you'll have trouble to make a nice gui.
C# is a little more "heavy" than python. You'll definitely end up writing more code, just in terms of the number of lines. XNA + WPF is a powerful combo though and has very good tools - VisualStudio has a great gui designer
C# vs. Python - Best choice for a 2D/3D graphic simulator