WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Programmierung eines Kreissegments

 

Roland
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 04.03.09
Wohnort: ---
Version: 7.6.0
     Beitrag Verfasst am: 04.03.2009, 17:03     Titel: Programmierung eines Kreissegments
  Antworten mit Zitat      
Hallo miteinander,
ich habe noch nicht viel Erfahrung mit Matlab gesammelt und wuerde mich dahrer freuen wenn ihr mir weiterhelfen koenntet. Ich moechte mit Matlab ein Kreissegment programmieren, wobei lediglich der Mittelpunkt (X1,Y1) fest vorgegeben ist. Der radius sowie der die ober und unter grenze des Kreissegments soll Variabel gehalten werden. Die geometrischen Daten des Kreissegments moechte ich in ein csv datei speichern. Wie gehe ich da am besten vor?
Danke!
Private Nachricht senden Benutzer-Profile anzeigen


Helmert
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 04.09.08
Wohnort: Karlsruhe
Version: 2011a
     Beitrag Verfasst am: 04.03.2009, 17:47     Titel:
  Antworten mit Zitat      
Was genau verstehst du unter Kreissegment "programmieren"? Willst du eine 2D-Koordinatenliste von Punkten gleichen Abstands erzeugen, die auf diesem Segment liegen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Roland
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 04.03.09
Wohnort: ---
Version: 7.6.0
     Beitrag Verfasst am: 04.03.2009, 17:58     Titel:
  Antworten mit Zitat      
Ja genau. Aktuell bin ich gerade damit beschaeftigt eine Schleife zu schreiben, die mir die einzelnen Punkte auf diesem Kreissegment berechnet. Probleme bereitet mir auch noch die unterschiedlichen Grenzen des Segments.
Private Nachricht senden Benutzer-Profile anzeigen
 
Helmert
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 04.09.08
Wohnort: Karlsruhe
Version: 2011a
     Beitrag Verfasst am: 04.03.2009, 18:01     Titel:
  Antworten mit Zitat      
Mir ist nicht ganz klar, was genau deine Frage/dein Problem ist. Schreib doch mal, wie dein bisheriger Ansatz ist (Code).
Private Nachricht senden Benutzer-Profile anzeigen
 
Roland
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 04.03.09
Wohnort: ---
Version: 7.6.0
     Beitrag Verfasst am: 04.03.2009, 18:17     Titel:
  Antworten mit Zitat      
Mein Problem besteht eigentlich darin, das ich einen Programm schreiben moechte, welches die Koordinaten auf einem Kreis bestimmt. Dabei sollen Koordinaten der Punkte, die auf diesem Kreissegment liegen in eine csv datei geschrieben werden.
Na ja ist noch etwas unausgegoren und wahrscheinlich etwas umstaendlich geschrieben.
Code:

%Center
X1 = -204.00;
Y1 = 67.694116;
r = 5 ;
alpha = 45;
beta = 60;
% datum line
XD = X1 - r
% Lower Limit  
XLL = X1 - r*cos(2*pi*alpha/360);
YLL = Y1 - r*sin(2*pi*alpha/360);
% Upper Limit
XUL = X1 - r*cos(2*pi*beta/360);
YLL = Y1 + r*sin(2*pi*beta/360);
a = alpha
for a = a:-0.1:0
    X = X1 - r*cos(2*pi*a/360
Private Nachricht senden Benutzer-Profile anzeigen
 
Helmert
Forum-Century

Forum-Century


Beiträge: 121
Anmeldedatum: 04.09.08
Wohnort: Karlsruhe
Version: 2011a
     Beitrag Verfasst am: 04.03.2009, 18:24     Titel:
  Antworten mit Zitat      
Du könntest die Schleife doch einfach von alpha bis beta laufen lassen?
Code:

for a = alpha:0.1:beta
  x = X1 + r * cos(a/180*pi);
  y = Y1 + r * sin(a/180*pi);
  % ...
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2009, 18:24     Titel:
  Antworten mit Zitat      
Kommst du damit weiter:
Code:
r=1; %Radius
a=10; % Winkel Start
b=100; % Winkel Ende
x_m=1; % Mittelpunkt
y_m=-2;
n=10; % Anzahl der Punkte
phi1=linspace(deg2rad(a),deg2rad(b),n);
phi2=linspace(0,2*pi,360);
x1=x_m+r*cos(phi1); % x Koordinaten
y1=y_m+r*sin(phi1); % y Koordinaten der Punkte des Segments
x2=x_m+r*cos(phi2);
y2=y_m+r*sin(phi2);
plot(x_m,y_m,'ro');
hold on;
plot(x2,y2,':');
plot(x1,y1,'x-r','LineWidth',2,'MarkerSize',8);
axis equal;
grid on;
?
 
Roland
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 04.03.09
Wohnort: ---
Version: 7.6.0
     Beitrag Verfasst am: 04.03.2009, 18:33     Titel:
  Antworten mit Zitat      
Mensch danke fuer die hilfe!
Ich werde das heute abend nochmal ausprobieren. Alpha ist in dem Fall ein "negativer" Winkel. Aber das laesst sich ja dann ueber die Winkelfunktionen korrigieren.
Private Nachricht senden Benutzer-Profile anzeigen
 
Roland
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 04.03.09
Wohnort: ---
Version: 7.6.0
     Beitrag Verfasst am: 04.03.2009, 19:01     Titel:
  Antworten mit Zitat      
Hallo,
habe gerade versucht, dass programm fertig zu schreiben. Ich habe allerdings ein Problem mit dem abspeichern der Daten. Kann mir jemand helfen? Finde den Fehler nicht.
Code:

%part of creating control points in these 6 curves
X1 = -204.00;
Y1 = 67.694116;
r = 5 ;
alpha = -45;
beta = 60;
% datum line
XD = X1 - r;
% Lower Limit  
XLL = X1 - r*cos(2*pi*alpha/360);
YLL = Y1 + r*sin(2*pi*alpha/360);
% Upper Limit
XUL = X1 - r*cos(2*pi*beta/360);
YUL = Y1 + r*sin(2*pi*beta/360);
a = alpha;
d = 2*(beta - alpha);
X = [];
Y = [];
for a = alpha:0.5:beta
    X = X1 - r*cos(2*pi*a/360);
    Y = Y1 + r*sin(2*pi*a/360);
    Z = 0;
    out = strcat('LEcircle_1.csv');
         fid = fopen(out,'wt');
         for j = 1:d
             fprintf(fid,'%f %f\n', X(j), Y(j))
         end
         fclose(fid);
end    
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2009, 19:21     Titel:
  Antworten mit Zitat      
Code:
X1 = -204.00;
Y1 = 67.694116;
r = 5 ;
alpha = -45;
beta = 60;
% datum line
XD = X1 - r;
% Lower Limit
XLL = X1 - r*cos(2*pi*alpha/360);
YLL = Y1 + r*sin(2*pi*alpha/360);
% Upper Limit
XUL = X1 - r*cos(2*pi*beta/360);
YUL = Y1 + r*sin(2*pi*beta/360);
a = alpha;
d = 2*(beta - alpha);
X = [];
Y = [];
a=alpha:0.5:beta

X = X1 - r*cos(2*pi*a/360);
Y = Y1 + r*sin(2*pi*a/360);
Z = 0;
out = strcat('LEcircle_1.csv');
fid = fopen(out,'wt');
for j = 1:d
    fprintf(fid,'%f %f\n', X(j), Y(j))
end
fclose(fid);
?
 
Roland
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 04.03.09
Wohnort: ---
Version: 7.6.0
     Beitrag Verfasst am: 04.03.2009, 19:31     Titel:
  Antworten mit Zitat      
Jupp funzt, vielen Dank!!
Aber warum eigentlich? was war an der aeusseren for schleife falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2009, 08:08     Titel:
  Antworten mit Zitat      
Du hast in jedem Durchlauf der äußeren Schleife die Datei geöffnet, überschrieben und geschlossen. Daher war am Ende nur eine Zeile in der Datei.
Die verbleibende for-Schleife kannst du auch verweiden, sieh dir mal
Code:
an.

edit by steve: Tippfehler korrigiert!
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2009, 08:10     Titel:
  Antworten mit Zitat      
Tippfehler:
Code:
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.