Plotting between 2 points in 2017b
10 views (last 30 days)
Show older comments
clear all; close all force; clc;
% inputs
AR=5;
L=.5;
Swp_25=45;
%Calcs
b=1; % unit length here
Cr=(2*b)/(AR*(L+1));
Ct=L*Cr;
S=((Cr+Ct)/2)*b;
Swp_LE=atand(tand(Swp_25)+(4/AR)*(.25*((1-L)/(1+L))));
xpc=[0,.25,.50,.75,1.00];
% [Swp0,Swp25,Swp50,Swp75,Swp100]
Swp=atand(tand(Swp_LE)-(4/AR)*(xpc.*((1-L)/(1+L))));
qc=.25*Cr;%length of quarter chord
y11=0;
y12=.125*b;%1/8 of total wingspan
y21=y12;
y22=.25*b;%1/4 of total wingspan
y31=y22;
y32=.375*b;%3/8 of total wingspan
y41=y32;
y42=.5*b;% 1/2 of total wingspan
x11=qc;
x12=x11+y12*tand(Swp(2))*b;
x21=x12;
x22=x11+y22*tand(Swp(2))*b;
x31=x22;
x32=x11+y32*tand(Swp(2))*b;
x41=x32;
x42=x11+y42*tand(Swp(2))*b;
y1m=(y11+y12)/2;
y2m=(y21+y22)/2;
y3m=(y31+y32)/2;
y4m=(y41+y42)/2;
x75=qc*3;%x at 3/4 of root chord
x1m=x75+y1m*tand(Swp(4))*b;
x2m=x75+y2m*tand(Swp(4))*b;
x3m=x75+y3m*tand(Swp(4))*b;
x4m=x75+y4m*tand(Swp(4))*b;
%table
f=uifigure;
headers={'Panel','Xm','Ym','X1n','Y1n','X2n','Y2n'};
data=[1 x1m y1m x11 y11 x12 y21
2 x2m y2m x21 y21 x22 y22
3 x3m y3m x31 y31 x32 y32
4 x4m y4m x41 y41 x42 y42];
t=uitable(f,'Data',data,'ColumnName',headers);
%plot
y=0:.01:y42;
xLE=y.*tand(Swp(1));
xTE=Cr+y.*tand(Swp(5));
xle=xLE(end);
xte=xTE(end);
plot(xLE,y)
hold on
plot(xTE,y)
plot([Cr 0], [0 0])
TC1=[xle,y42];
TC2=[xte,y42]; % my issue is right here
plot(xle,y42,'x') % this works
plot(xte,y42,'x') % this works
plot(TC1,TC2) % this does not work, plots line in wrong place
plot(x1m,y1m,'*')
plot(x2m,y2m,'*')
plot(x3m,y3m,'*')
plot(x4m,y4m,'*')
plot(x11,y11,'o')
plot(x21,y21,'o')
plot(x31,y31,'o')
plot(x41,y41,'o')
legend('Leading Edge','Trailing Edge','Root Chord','Tip Chord','CP1','CP2','CP3','CP4')
legend('Location','northwest')
I'm having some kind of problem with plotting one of my line segments. I can plot both end points of my line but when I try and plot the line between them it's in the wrong place. I'm so confused

0 Comments
Accepted Answer
Cam Salzberger
on 6 Nov 2017
Assuming your variable names are reasonable, TC1 and TC2 are both a 1x2 array containing x-data for the first element and y-data for the second element. So you are calling:
plot([x1 y1], [x2 y2])
But plot requires the first argument to be all the x-data, and the second argument to be all the y-data:
plot([x1 x2], [y1 y2])
So you have to rearrange how you make that call:
plot([TC1(1) TC2(1)], [TC1(2) TC2(2)])
-Cam
More Answers (0)
See Also
Categories
Find more on Graphics Performance in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!