% PEng 9.6
% Program med interaktiv ändring av plot

% Olika grundfärger för plot: röd, grön, blå, gul, cyan, magenta, svart
colors = ['r', 'g', 'b', 'y', 'c', 'm', 'k'];

% Plotta funktionerna x(t) = cos(t)/pi och x(t) = 2*sin(t)/(2*pi) för 
% -2?t?2 
figure(1);
clf
hold on
t = -2:0.1:2;
x = cos(t/pi);
plot(t, x, 'k', 'LineWidth', 4)
x = 2*sin(t/(2*pi));
plot(t, x, 'k', 'LineWidth', 4)

% Låt användaren ändra färg på linjerna genom att klicka med musen, och
% avsluta med tangentbordstryckning
key_press = 0;
while ~key_press
	
	% Vänta på musklick eller tangentbordstryckning
	disp('Klicka på en linje för att ändra dess färg, avsluta med tangent.')
	key_press = waitforbuttonpress;
	if key_press
		
		% Kolla om användaren vill sluta
		finished = ...
			input('Du tryckte på tangentbordet. Vill du avsluta? (j,n): ', 's');
		while ~(strcmp(lower(finished), 'j') | strcmp(lower(finished), 'n'))
			finished = ...
				input('Ej giltigt svar. Vill du avsluta? (j,n): ', 's');
		end
		if strcmp(lower(finished), 'j')
			disp('Tack och hej!')
		else
			key_press = 0;
		end
		
	else
		
		% Om musen klickat på en av linjerna, ändra den linjens färg slump- 
		% mässigt till röd, grön, blå, gul, cyan, magenta eller svart.
		clicked_handle = gco;
		is_line = strcmp(get(clicked_handle, 'Type'), 'line');
		if is_line
			
			disp('Du klickade på en linje.')
			random_color_number = max(1, ceil(7*rand));
			set(clicked_handle, 'Color', colors(random_color_number));
			
		else
			
			disp('Du klickade inte på en linje.')
			
		end
		
	end
	
end
		
