MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by VASISTAKRISHNA on 21 Mar 2014

How to I generate random numbers inside a rectangle at an angle?

*No products are associated with this question.*

Answer by Roger Stafford on 21 Mar 2014

Accepted answer

Let (x0,y0) be coordinates of one of the rectangle's corners, and let one of its sides stretching from this corner to another corner be of length a and making an angle of theta radians with respect to the x-axis. Let another side be of length b stretching from (x0,y0) at a counterclockwise right angle to the first side. Finally suppose you want n random points within that rectangle. Then do this:

X = a*rand(n,1); Y = b*rand(n,1); x = x0 + X*cos(theta) - Y*sin(theta); y = y0 + X*sin(theta) + Y*cos(theta); plot(x,y,'y.') axis equal % <-- Keep the x and y axes scale factors equal

## 1 Comment

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/122609#comment_203447

What angle?