Ich möchte eine Sternmarkierung entlang der Sechseck-Trajektorie verschieben, die der "Kreis-Trajektorie" ähnelt, die ich am Ende meiner Frage hinzugefügt habe. Vielen Dank.Eine Sternmarkierung entlang einer Sechseckbahn bewegen?
Dies ist der Quellcode, dass ich noch für die Erstellung von konzentrischen hegzagons geschrieben, aber ich weiß nicht, wie ein Stern Marker zu bewegen, die die konzentrischen Hexagone überquert, ich einen ähnlichen Simulationscode für Kreisbahn geschrieben hatte, aber Ich konnte es nicht für Hexagon tun.
%clc; % Clear the command window.
%close all; % Close all figures (except those of imtool.)
%clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 20;
angles = linspace(0, 360, 7);
radii = [20, 35, 50,70];
% First create and draw the hexagons.
numberOfHexagons = 4;
% Define x and y arrays. Each row is one hexagon.
% Columns are the vertices.
x1=radii(1) * cosd(angles)+50;
y1 = radii(1) * sind(angles)+50;
x2=radii(2) * cosd(angles)+50;
y2 = radii(2) * sind(angles)+50;
x3=radii(3) * cosd(angles)+50;
y3 = radii(3) * sind(angles)+50;
x4=radii(4) * cosd(angles)+50;
y4 = radii(4) * sind(angles)+50;
plot(x1 , y1, 'b');
hold on
plot(x2, y2, 'b');
hold on
plot(x3, y3, 'b');
hold on
plot(x4, y4, 'b');
hold on
% Connecting Line:
plot([70 100], [50 50],'color','b')
axis([0 100 0 100])
hold on
Kreisbahn:
% Initialization steps.
format long g;
format compact;
fontSize = 20;
r1 = 50;
r2 = 35;
r3= 20;
xc = 50;
yc = 50;
% Since arclength = radius * (angle in radians),
% (angle in radians) = arclength/radius = 5/radius.
deltaAngle1 = 5/r1;
deltaAngle2 = 5/r2;
deltaAngle3 = 5/r3;
theta1 = 0 : deltaAngle1 : (2 * pi);
theta2 = 0 : deltaAngle2 : (2 * pi);
theta3 = 0 : deltaAngle3 : (2 * pi);
x1 = r1*cos(theta1) + xc;
y1 = r1*sin(theta1) + yc;
x2 = r2*cos(theta2) + xc;
y2 = r2*sin(theta2) + yc;
x3 = r3*cos(theta3) + xc;
y3 = r3*sin(theta3) + yc;
plot(x1,y1,'color',[1 0.5 0])
hold on
plot(x2,y2,'color',[1 0.5 0])
hold on
plot(x3,y3,'color',[1 0.5 0])
hold on
% Connecting Line:
plot([70 100], [50 50],'color',[1 0.5 0])
% Set up figure properties:
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0, 0, 1, 1]);
drawnow;
axis square;
for i = 1 : length(theta1)
plot(x1(i),y1(i),'r*')
pause(0.1)
end
for i = 1 : length(theta2)
plot(x2(i),y2(i),'r*')
pause(0.1)
end
for i = 1 : length(theta3)
plot(x3(i),y3(i),'r*')
pause(0.1)
end
Was ist Ihre Frage? – excaza
[Warum kann "Kann mir jemand helfen?" Keine eigentliche Frage?] (Http://meta.stackoverflow.com/q/284236) Außerdem, kassieren Sie Ihren Code von Teil A und bitten Sie uns, Teil B zu schreiben, ohne dass Sie zeigen Jede Anstrengung oder Forschung zu Teil B wird hier nicht sehr geschätzt. – Adriaan
Vielen Dank für Ihren Kommentar, aber ich habe wirklich versucht, es selbst zu tun, aber leider konnte ich nicht und ich hatte keine andere Wahl, als meine Frage hier zu stellen, außerdem habe ich den Teil A nicht gestellt, um Sie zu bitten, Teil B zu schreiben. Wenn du meine Frage sorgfältig liest, würdest du wissen, dass ich Teil B geschrieben habe, um eine Kreisbahn zu zeichnen, in der ein roter Sternmarker konzentrische Kreise durchquert und jetzt Code schreiben möchte, der die gleiche Situation für die Sechseck-Trajektorie schafft, aber ich habe Probleme damit Code und ich habe Code geschrieben, der nur konzentrische Sechsecke erstellt. – zein