Archief - coordinaten punten op cirkel

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

gamer1

Legacy Member
Een vraagje voor de matlab wizards hier op het forum (aangezien ik het resultaat morgen in de voormiddag zou moeten hebben).

Ik zou in Matlab de coordinaten (x, y) van een aantal punten over een 1/4 cirkelomtrek (straal is 150) willen hebben. Daarenboven zou ik een punt vooraleer aan dat pad te beginnen en een punt erna nog in die matrix willen hebben.

De bedoeling is om een bestuurdersmodel van een punt (-100, 150) rechtoor te laten rijden, tot (0, 150). Vanaf dat punt zou die een kwart cirkel moeten doorlopen tot aan (150, 0) en daarna zou die rechtdoor tot (150, -100) moeten gaan.
De input is momenteel gewoon een matrix met 3 kolommen (x, y en z-coordinaten), maar z is overal 0. En ik zou dus die kolommen graag automatisch zien gegenereerd worden zodat ik die in het model kan stoppen.

edit:
bij die x,y coordinaten zou ik een cte booglengte moeten hebben, niet cte verschil in x-waarden

J-Style

Legacy Member
Code:
[x,y] = pol2cart(theta,r);

theta kan je als vector nemen (van 0 tot -pi/2 voor de eerste kwartcircel die je beschrijft) en r = 150.
Dat geeft dan de twee vectoren x en y die de getransformeerde coordinaten zijn van polaire naar carthesiaanse. Dus bijvoorbeeld in MATLAB code:

Code:
r = 150;
dth = 0.001;
theta = 0:-dth:-pi/2;
[x,y] = pol2cart(theta,r);

gamer1

Legacy Member
Bedankt voor de snelle reply. Weet ge toevallig ook hoe ik het punt ervoor en het punt erna kan invoegen in een nieuwe vector? Dus iets in de aard van:
Code:
driver_path(:,1) = [150 x -150]
driver_path(:,2) = [150 y -150]

gamer1

Legacy Member
gamer1 zei:
Bedankt voor de snelle reply. Weet ge toevallig ook hoe ik het punt ervoor en het punt erna kan invoegen in een nieuwe vector? Dus iets in de aard van:
Code:
driver_path(:,1) = [150 x -150]
driver_path(:,2) = [150 y -150]

Zo blijkt het dus wel te werken:
Code:
x_path = x;
y_path = y;
z_path = z;

x_path = [150 x_path -150];
y_path = [150 y_path -150];

driver_path(:,1)= x_path;
driver_path(:,2)= y_path;
driver_path(:,3)= z_path;

J-Style

Legacy Member
gamer1 zei:
Bedankt voor de snelle reply. Weet ge toevallig ook hoe ik het punt ervoor en het punt erna kan invoegen in een nieuwe vector?

Bedoel je het punt net voor en na de kwartcirkel?
Dat kan je doen door:

Code:
theta = dth:-dth:-(pi/2+dth);

Anders begrijp ik de vraag niet volledig.

gamer1

Legacy Member
J-Style zei:
Bedoel je het punt net voor en na de kwartcirkel?
Dat kan je doen door:

Code:
theta = dth:-dth:-(pi/2+dth);

Anders begrijp ik de vraag niet volledig.

Neen, het punt voor en na de kwartcirkel liggen niet op de cirkel. Het zijn gewoon 2 punten die willekeurig gekozen kunnen worden. In dit specifieke geval wou ik een stuk rechte lijn bekomen (dus van het 1e in te geven punt naar het 1e punt van de kwartcirkel), daarna moet de kwartcirkel doorlopen worden en tot slot nog een rechte lijn (van laatste punt van kwartcirkel tot zelfgekozen punt). Dan wou ik al die punten (1e gekozen punt, kwartcirkel punten en laatste gekozen punt) in eenzelfde matrix hebben, zodat ik die als input kon gebruiken voor het bestuurdersmodel.
Maar met het stukje code zoals ik nog gepost had blijkt het te werken.
In ieder geval toch bedankt.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan