# Write a function drawBox which draws boxes on the screen

4 visualizzazioni (ultimi 30 giorni)
Khalid Khan il 30 Nov 2016
Risposto: Abu Yamen il 3 Dic 2016
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 CommentoMostra NessunoNascondi Nessuno
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 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 CommentiMostra 3 commenti meno recentiNascondi 3 commenti meno recenti
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 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 CommentiMostra 2 commenti meno recentiNascondi 2 commenti meno recenti
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 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
##### 0 CommentiMostra -1 commenti meno recentiNascondi -1 commenti meno recenti

Accedi per commentare.

### Categorie

Scopri di più su Timing and presenting 2D and 3D stimuli in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!