How would I plot conic sections in a 3D cone and extract certain parts of the graph?
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I'm a beginner and I don't have much MATLAB expericence, but I'm trying to draw different conic sections in a 3d cone and then extract just the intersection of the plane and the cone in order to highlight the different conics (parabolas, hyperbolas, etc) that are formed? Specifically, how would I simply extract the intersection between a plane and the cone?
It would be especially helpful if answers and code were in a simpler and more understandable format tailored to a beginner like me.
Thanks
Here is my current code
r = linspace(0,2*pi) ;
th = linspace(0,2*pi) ;
[R,T] = meshgrid(r,th) ;
X = R.*cos(T) ;
Y = R.*sin(T) ;
Z = R;
surf(X,Y,Z)
patch([2 -2 -2 2], [2 2 -2 -2], [2 2 2 2], [2 2 -2 -2])
hold on
surf(-X,-Y,-Z)
1 Commento
darova
il 21 Giu 2019
Use the same X and Y for plane. Use contour() to calculate intersection
Look HERE
Risposta accettata
Matt J
il 21 Giu 2019
Modificato: Matt J
il 21 Giu 2019
The easiest would be to have the plane fixed as the xy-plane and just rotate/translate the cone around in 3D space to get different sections,
[R,~]=qr(rand(3)); %random rotation
R=R*det(R);
D=diag([1,1,-1]);
fcone=@(x,y,z)sum([x;y;z+1].*R.'*D*R*[x;y;z+1]); %3D cone
fsec= @(x,y) sum([x;y;1].*R.'*D*R*[x;y;1]); %2D intersection of cone with xy plane
hc=fimplicit3(fcone); %plot 3D cone
hc.MeshDensity=15;
hc.EdgeColor='none';
hc.FaceAlpha=0.1;
hold on
hsec=fimplicit(fsec); %plot section
hold off
legend('Cone','Section')


2 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Surface and Mesh Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!