Contents

Rita en triangel

figure(1)                 % gör figur 1 aktuell
clf                       % rensa figur 1
x=[0.2, 0.8, 0.5, 0.2]    % x-koordinater
y=[0.1, 0.3, 0.7, 0.1]    % y-koordinater
plot(x,y,'o-')            % plot(x,y)
x =
    0.2000    0.8000    0.5000    0.2000
y =
    0.1000    0.3000    0.7000    0.1000

Ändra på axlarna

axis equal, axis([-0.1, 1.2, 0, 1])

Text i figuren

txt = '(x_1,y_1)';       % (latex och tex stöds)
text(x(1)+0.1,y(1),txt); % text placeras i (0.3,0.1)

Text i figuren

txt = '(x_1,y_1)';       % (latex och tex stöds)
text(x(1)+0.1,y(1),txt); % text placeras i (0.3,0.1)
txt = '(x_2,y_2)';
text(x(2)+0.1,y(2),txt);
txt = '(x_3,y_3)';
text(x(3)+0.1,y(3),txt);

Titel

title('En triangel');

Samma text men med for-loop

TXT = ['(x_1,y_1)'; '(x_2,y_2)'; '(x_3,y_3)'];
for i = 1:3
   txt = TXT(i,:);
   text(x(i)+0.1,y(i),txt);
end

Placera ut texten med musen istället

figure(1); clf; hold on
axis equal, axis([-0.1, 1.2, 0, 1]);

plot(x,y,'o-');
for i = 1:3
    txt = TXT(i,:);
    gtext(txt)
end

Attribut

h = plot(x,y,'r');
h.LineWidth = 3;
h.MarkerSize = 15;
h.Marker = 'd';

Attribut (alt)

plot(x,y,'r','LineWidth',3,'MarkerSize',15,'Marker','d');
%
% get(h)           -> visar vilka attribut som finns
% h.attribut = attributvärde;  -> ändra värde
%
% eller
% plot(..., 'attribut',attributvärde, ...)
%

Fyll i triangeln med färg

hold on  % Vi ska rita mer i samma figur
fill(x,y,[0.6, 0.8, 1])  % RGB för mesblått
% Färg i RGB anges med tre tal;
% Andel Rött,Grönt,Blått
% 1 är maximalt av färgen, 0 är inget av färgen.
% [1,1,1] blir vitt (maximalt av alla färger)
% [0,0,0] blir svart (inget av någon färg)
% [1,0,0] blir rött (maximalt rött, inget grönt, inget blått)

Nu ritar vi om i ett större koordinatsystem

clear all; clf; clc
axis equal, axis([-1, 1, -1, 1]); hold on

P = [0.2, 0.8, 0.5, 0.2; 0.1, 0.3, 0.7, 0.1]
x = P(1,:);
y = P(2,:);

fill(x,y,[0.6, 0.8, 1],'edgecolor',[0, 0, 1],'linewidth',2)
plot(x,y,'ro','linewidth',2,'markersize',5)
P =
    0.2000    0.8000    0.5000    0.2000
    0.1000    0.3000    0.7000    0.1000

En rotationsmatris

v=pi/3;               % rotation pi/3 moturs
A=[cos(v) -sin(v); sin(v) cos(v)];

Rotera triangeln

Ph=A*P
Ph =
    0.0134    0.1402   -0.3562    0.0134
    0.2232    0.8428    0.7830    0.2232

Rita den roterade triangeln

xh=Ph(1,:); yh=Ph(2,:);
fill(xh,yh,[1 0.8 1],'edgecolor',[0 0 1],'linewidth',2) % rosa triangel
plot(xh,yh,'ro','linewidth',2,'markersize',5)

Gör det 4 gånger till

for i=1:4
    Ph=A*Ph;
    xh=Ph(1,:); yh=Ph(2,:);
    fill(xh,yh,[0, 1, 0]*1/i);
    pause(1)
end

En cirkel med radie 3

clf;
t = linspace(0,2*pi); r = 3;
x = r*cos(t); y = r*sin(t);

plot(x,y); axis equal

Låt radien bero av vinkeln,

r(t) = (2+sin(3t))/sqrt(1+exp(cos(t)))

t = linspace(0,2*pi);
r = (2+sin(3*t))./sqrt(1+exp(cos(t)));
x = r.*cos(t);
y = r.*sin(t);
plot(x,y,'linewidth',2); axis equal

Hur många gånger skär kurvan enhetscirkeln?

hold on
xc = cos(t); yc = sin(t);
plot(xc,yc);  % enhetscirkeln

Vilka vinklar skär kurvan enhetscirkeln ?

clf;
t = linspace(0,2*pi);
r = (2+sin(3*t))./sqrt(1+exp(cos(t)));

plot(t,r,'linewidth',3); hold on;
plot(t,ones(1,100),'red','linewidth',3);

bestäm skärningspunkt med fzero

f = @(t)(2+sin(3*t))./sqrt(1+exp(cos(t)))-1;

v1 = fzero(f,2);
plot(v1,1,'*','markersize',15,'linewidth',3)