how do i merge the two surface of half-torus?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
hi, can someone help me with how to merge the two half-torus surfaces? i attached the code below and this is the figure of the unmerged torus. thank you!

clc
clear all
close all
%control point for first surface
P0 = [7 2 0]; P1 = [8 1 0]; P2 = [8 1 1]; P3 = [7 2 1];
P4 = [7 7 0]; P5 = [8 8 0]; P6 = [8 8 1]; P7 = [7 7 1];
P8 = [2 7 0]; P9 = [1 8 0]; P10 = [1 8 1]; P11 = [2 7 1];
P12 = [2 2 0]; P13 = [1 1 0]; P14 = [1 1 1]; P15 = [2 2 1];
phi=1;%scaling factor
B1=-1;%shape parameter lambda
B2=-1;%shape parameter miu
G17=phi*((2+B1)/(2+B2))*(P3-P2)+P3
G21=phi*((2+B1)/(2+B2))*(P7-P6)+P7
G25=phi*((2+B1)/(2+B2))*(P11-P10)+P11
G29=phi*((2+B1)/(2+B2))*(P15-P14)+P15
%control point for second surface
P3; G17; P18 = [6 3 0]; P19 = [7 2 0];
P7; G21; P22 = [6 6 0]; P23 = [7 7 0];
P11; G25; P26 = [3 6 0]; P27 = [2 7 0];
P15; G29; P30 = [3 3 0]; P31 = [2 2 0];
%control point for third surface
P44 = [2 0 0]; P45 = [1 1 0]; P46 = [1 1 1]; P47 = [2 0 1];
P32 = [2 -5 0];P33 = [1 -6 0]; P34 = [1 -6 1]; P35 = [2 -5 1];
P36 = [7 -5 0];P37 = [8 -6 0]; P38 = [8 -6 1]; P39 = [7 -5 1];
P40 = [7 0 0];P41 = [8 1 0]; P42 = [8 1 1]; P43 = [7 0 1];
G56=phi*((2+B1)/(2+B2))*(P47-P46)+P47
G57=phi*((2+B1)/(2+B2))*(P35-P34)+P35
G58=phi*((2+B1)/(2+B2))*(P39-P38)+P39
G59=phi*((2+B1)/(2+B2))*(P43-P42)+P43
%control point for fourth surface
P47;G56;P48 = [3 -1 0]; P49 = [2 0 0];
P35;G57;P50 = [3 -4 0]; P51 = [2 -5 0];
P39;G58;P52 = [6 -4 0]; P53 = [7 -5 0];
P43;G59;P54 = [6 -1 0]; P55 = [7 0 0];
Gx=[P0(1) P1(1) P2(1) P3(1);P4(1) P5(1) P6(1) P7(1);P8(1) P9(1) P10(1) P11(1);P12(1) P13(1) P14(1) P15(1)];
Gy=[P0(2) P1(2) P2(2) P3(2);P4(2) P5(2) P6(2) P7(2);P8(2) P9(2) P10(2) P11(2);P12(2) P13(2) P14(2) P15(2)];
Gz=[P0(3) P1(3) P2(3) P3(3);P4(3) P5(3) P6(3) P7(3);P8(3) P9(3) P10(3) P11(3);P12(3) P13(3) P14(3) P15(3)];
Gx1=[P3(1) G17(1) P18(1) P19(1);P7(1) G21(1) P22(1) P23(1);P11(1) G25(1) P26(1) P27(1);P15(1) G29(1) P30(1) P31(1)];
Gy1=[P3(2) G17(2) P18(2) P19(2);P7(2) G21(2) P22(2) P23(2);P11(2) G25(2) P26(2) P27(2);P15(2) G29(2) P30(2) P31(2)];
Gz1=[P3(3) G17(3) P18(3) P19(3);P7(3) G21(3) P22(3) P23(3);P11(3) G25(3) P26(3) P27(3);P15(3) G29(3) P30(3) P31(3)];
Gx2=[P44(1) P45(1) P46(1) P47(1);P32(1) P33(1) P34(1) P35(1);P36(1) P37(1) P38(1) P39(1);P40(1) P41(1) P42(1) P43(1)];
Gy2=[P44(2) P45(2) P46(2) P47(2);P32(2) P33(2) P34(2) P35(2);P36(2) P37(2) P38(2) P39(2);P40(2) P41(2) P42(2) P43(2)];
Gz2=[P44(3) P45(3) P46(3) P47(3);P32(3) P33(3) P34(3) P35(3);P36(3) P37(3) P38(3) P39(3);P40(3) P41(3) P42(3) P43(3)];
Gx3=[P47(1) G56(1) P48(1) P49(1);P35(1) G57(1) P50(1) P51(1);P39(1) G58(1) P52(1) P53(1);P43(1) G59(1) P54(1) P55(1)];
Gy3=[P47(2) G56(2) P48(2) P49(2);P35(2) G57(2) P50(2) P51(2);P39(2) G58(2) P52(2) P53(2);P43(2) G59(2) P54(2) P55(2)];
Gz3=[P47(3) G56(3) P48(3) P49(3);P35(3) G57(3) P50(3) P51(3);P39(3) G58(3) P52(3) P53(3);P43(3) G59(3) P54(3) P55(3)];
N=20;
t=(1:N)'/N;
p=(pi/2)*t;
T=[p.^0 sin(p) (sin(p).^2) (sin(p).^3) cos(p) (cos(p).^2) (cos(p).^3)];
A=[1 0 0 1;
-(B1+2) (2+B1) 0 0;
((2*B1)+1) -(2+2*B1) 0 0;
-B1 B1 0 0;
0 0 2+B2 -(B2+2);
0 0 -((2*B2)+2) ((2*B2)+1);
0 0 B2 -B2];
TT=transpose(T);
AA=transpose(A);
z1 = T*A*Gx*AA*TT;
z2 = T*A*Gy*AA*TT;
z3 = T*A*Gz*AA*TT;
z4 = T*A*Gx1*AA*TT;
z5 = T*A*Gy1*AA*TT;
z6 = T*A*Gz1*AA*TT;
z7 = T*A*Gx2*AA*TT;
z8 = T*A*Gy2*AA*TT;
z9 = T*A*Gz2*AA*TT;
z10 = T*A*Gx3*AA*TT;
z11 = T*A*Gy3*AA*TT;
z12 = T*A*Gz3*AA*TT;
X = [z1 z4];
Y = [z2 z5];
Z = [z3 z6];
X1 =[z4 z1];
Y1 =[z5 z2];
Z1 =[z6 z3];
X2 = [z7 z10];
Y2 = [z8 z11];
Z2 = [z9 z12];
X3 =[z10 z7];
Y3 =[z11 z8];
Z3 =[z12 z9];
scatter3([P0(1),P1(1),P2(1),P3(1),P4(1),P5(1),P6(1),P7(1),P8(1),P9(1),P10(1),P11(1),P12(1),P13(1),P14(1),P15(1)],[P0(2),P1(2),P2(2),P3(2),P4(2),P5(2),P6(2),P7(2),P8(2),P9(2),P10(2),P11(2),P12(2),P13(2),P14(2),P15(2)],[P0(3),P1(3),P2(3),P3(3),P4(3),P5(3),P6(3),P7(3),P8(3),P9(3),P10(3),P11(3),P12(3),P13(3),P14(3),P15(3)],'filled','MarkerFaceColor',[1 0 0]);hold on
scatter3([P3(1),G17(1),P18(1),P19(1),P7(1),G21(1),P22(1),P23(1),P11(1),G25(1),P26(1),P27(1),P15(1),G29(1),P30(1),P31(1)],[P3(2),G17(2),P18(2),P19(2),P7(2),G21(2),P22(2),P23(2),P11(2),G25(2),P26(2),P27(2),P15(2),G29(2),P30(2),P31(2)],[P3(3),G17(3),P18(3),P19(3),P7(3),G21(3),P22(3),P23(3),P11(3),G25(3),P26(3),P27(3),P15(3),G29(3),P30(3),P31(3)],'filled','MarkerFaceColor',[1 0 0]);hold on
surf(X,Y,Z)
%surf(z1,z2,z3)
hold on;
surf(X1,Y1,Z1)
%surf(z7,z8,z9);
%hold on;
surf(X2,Y2,Z2);
hold on;
surf(X3,Y3,Z3);
hold on;
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Surface and Mesh Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!