I want to vary how much of a plane is filled with the angle of the plane with the horizontal, any help?

1 vue (au cours des 30 derniers jours)
I am running an experiment and currently have a 300x300 zeros matrix and the lower half filled with ones to get a half-plane image. Now I want to 'tilt' this plane with different angles to see how this changes what I am testing. Is there a code I could use to do this?
Any more questions on this (cause I know this could be a bit confusing) please just drop a comment or send me a message.
  3 commentaires
Jan
Jan le 4 Juil 2017
Modifié(e) : Jan le 6 Juil 2017
An angle is not enough for tilting, but you need a center of rotations also: Is it at [150.5, 150.5]?
Daniel Gray
Daniel Gray le 4 Juil 2017
Yes sorry, because of it being a matrix, we'll just make the centre of rotation [150 150]

Connectez-vous pour commenter.

Réponses (1)

Jan
Jan le 4 Juil 2017
Modifié(e) : Jan le 4 Juil 2017
x = 1:300;
y = 1:300;
m = atan(30 * pi / 180); % 30 deg
k = bsxfun(@plus, m * (x - 150), y.' - 150) > 0; % Rotate around [150,150]
imagesc(k);
Since R2016b this is simpler:
k = (m * (x - 150)) + (y.' - 150) > 0;
  4 commentaires
Daniel Gray
Daniel Gray le 5 Juil 2017
Sorry yes I should have been more clear. I wanted the angle to be defined as between the horizontal across the centre and the new 'tilted plane' about the centre of rotation. If that doesn't make sense I can send you a diagram
Jan
Jan le 6 Juil 2017
Well, in the code I've posted I used 30 deg as angle. You can replace the angle by a variable:
YourAngle = 17.3; % deg
m = atan(YourAngle * pi / 180); % 30 deg
But if you ran the code with 45 deg, you have done this already. Therefore I do not understand, what the problem is now. What is the difference between the result my code creates and the wanted matrix?

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by