Write a function drawBox which draws boxes on the screen

3 visualizzazioni (ultimi 30 giorni)
I got a task but I am confused. This is My task The function is called with a character (ch) as the first argument and two positive integers which represent the width and the height of the box to be drawn. It automatically draws a box with the character (ch) by the specified width and height. Can Anyone help me out with the task.
  1 Commento
Abu Yamen
Abu Yamen il 3 Dic 2016
function []= drawBox('s',w,h)
ch =input('ch-ch ','s'); w =input('width : '); h =input('hight : ');
x = repmat(ch, h, w); x(2:end-1, 2:end-1) = char(32); disp(x); end

Accedi per commentare.

Risposta accettata

KSSV
KSSV il 30 Nov 2016
Modificato: KSSV il 30 Nov 2016
function drawBox(str,w,h)
ch = [0. 0.] ;
%%get four corners of box
N = 20 ;
x = linspace(ch(1),ch(1)+w,N) ;
y = linspace(ch(2),ch(2)+h,N) ;
[X,Y] = meshgrid(x,y) ;
X(2:end-1,2:end-1) = NaN ;
Y(2:end-1,2:end-1) = NaN ;
x = X(~isnan(X)) ;y = Y(~isnan(Y)) ;
plot(x,y,'.w') ; hold on
text(x,y,str)
axis off
  4 Commenti
Khalid Khan
Khalid Khan il 30 Nov 2016
Modificato: Khalid Khan il 30 Nov 2016
Thank You Sir It worked
rim
rim il 2 Dic 2016
Modificato: rim il 2 Dic 2016
its not working for me , please help me with this question its showing error in functio drawBox

Accedi per commentare.

Più risposte (2)

KSSV
KSSV il 30 Nov 2016
what is ch? Actually to draw a box four numbers are needed. First two position/ origin of the box and then width, height. I think ch is a 1x2 array with two numbers which represent position of the box.
ch = [1. 1.] ;
h = 1. ;
w = 0.5 ;
box = [ch w h] ;
%%get four corners of box
p = [ch(1) ch(2) ;
ch(1)+w ch(2) ;
ch(1)+w ch(2)+h ;
ch(1) ch(2)+h ;
ch(1) ch(2)] ;
plot(p(:,1),p(:,2),'r')
  3 Commenti
feg bog
feg bog il 30 Nov 2016
Modificato: feg bog il 30 Nov 2016
the given code do not give the wanted output is there is wrong on the code , or what !! i am confused i.e. is necessary to use plot or normal printf code?

Accedi per commentare.


Abu Yamen
Abu Yamen il 3 Dic 2016
function []= drawBox('s',w,h)
ch =input('ch-ch ','s'); w =input('width : '); h =input('hight : ');
x = repmat(ch, h, w); x(2:end-1, 2:end-1) = char(32); disp(x); end

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by