I really wanted a rhombus, but all I got was this stupid rectangle
HTML + JavaScript (ES6), 34 + 353 = 387 bytes

Input should be given in the format [125,50].



[w,h]=eval(prompt(c=C.getContext("2d"))).sort();d=q=&gt;(c.strokeStyle=q,b);l=(x,y=Z)=&gt;x?c.lineTo(x,y)||l:c.stroke();b=(x,y=H,r)=&gt;(c.beginPath(),r?c.arc(x,y,Math.sqrt(r),0,2*Math.PI):c.moveTo(x,y),l);b(Z=300,Z)(W=Z+w)(W,H=Z+h)(Z,H)(Z)();d`red`(Z,H,s=w*w+h*h)();b(W,Z,s)();b(Z)(W)();b(Z+w/2-h,Z+h/2-w)(H+w/2,W+h/2)();d`lime`(Z)(W-s/2/w)(W)(Z+s/2/w,H)(Z,H)()
&lt;canvas id=C width=800 height=800&gt;




Just a lot of math and drawing... The rectangle is drawn sideways if the height is greater than the width, which I believe is allowed.