Vinnaren i pepparkakshustävlingen!
2013-10-17, 23:29
  #1
Medlem
Hej!

Uppgiften är att göra en cirkel med en rät linje igenom samt att visa en beräkning av skärningspunkterna.

Detta är mitt script:


r = 10;
x2 = 3;
y2 = 9;
k = 6;

circ = 0:0.001:2*r ;

fx = r*cos(circ);
fy = r*sin(circ);

plot(x2+fx, y2+fy);



x = -5:5;
y = 6*x + 9 ;

hold;

plot(x,y);

x = sym('x');
y = sym('y');

S = solve((x-x2).^2 + (y-y2).^2 == r.^2 , y == 6*x + 9 );

S.x
S.y


När detta körs i matlab får jag skärningspunkterna:


ans =

(4*211^(1/2))/37 + 3/37
3/37 - (4*211^(1/2))/37


ans =

(24*211^(1/2))/37 + 351/37
351/37 - (24*211^(1/2))/37


Vilket inte kan stämma? Är det någon som ser felet i mitt script?

Jag är total nybörjare i Matlab samt programmering så alla tips är välkommna

Tack i förhand.
Citera
2013-10-18, 00:23
  #2
Medlem
Meloners avatar
Citat:
Ursprungligen postat av Pillevillen
Hej!

Uppgiften är att göra en cirkel med en rät linje igenom samt att visa en beräkning av skärningspunkterna.

Detta är mitt script:


r = 10;
x2 = 3;
y2 = 9;
k = 6;

circ = 0:0.001:2*r ;

fx = r*cos(circ);
fy = r*sin(circ);

plot(x2+fx, y2+fy);



x = -5:5;
y = 6*x + 9 ;

hold;

plot(x,y);

x = sym('x');
y = sym('y');

S = solve((x-x2).^2 + (y-y2).^2 == r.^2 , y == 6*x + 9 );

S.x
S.y


När detta körs i matlab får jag skärningspunkterna:


ans =

(4*211^(1/2))/37 + 3/37
3/37 - (4*211^(1/2))/37


ans =

(24*211^(1/2))/37 + 351/37
351/37 - (24*211^(1/2))/37


Vilket inte kan stämma? Är det någon som ser felet i mitt script?

Jag är total nybörjare i Matlab samt programmering så alla tips är välkommna

Tack i förhand.


r = 10;
x2 = 3;
y2 = 9;
k = 6;

circ = 0:0.001:2*r ;

fx = r*cos(circ);
fy = r*sin(circ);

Är fx och fy koordinaterna för cirkeln? Tänker säkert helt fel, va för länge sen jag höll på med matlab...
Men isåfall är den väl lite fel? Varför går circ från 0 till 2r? Borde väl gå från 0 till 2pi.

Kan det vara det som orsakar problem?
Citera
2013-10-18, 01:15
  #3
Medlem
Hej, y2 samt x2 är mittpunkts koordinaterna för cirkeln.

r*2 ger bara diametern för en cirkel, vilket jag sen kan plotta. Jag vet inte vad pi skulle göra för skillnad då det bara är att få en viss cirkel med en specifik diameter vilket jag får av r*2. Men det kanske är något som jag behöver se in i.

via r*2 är mittpunkten i (0.0), därför använder jag sedan plot(x2+fx, y2+fy) för att få mittpunkten i x2;y2 punkten.
Citera
2013-10-19, 22:25
  #4
Medlem
Grogganns avatar
Du kan även använda kommandot polyxpoly för att lösa skärningspunkter.

Tex [xi,yi]=polyxpoly(x,y,x2+fx,y2+fy) för ditt fall
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback