Programación de mesas redondas
x2 = rand(1) ; y2 = rand(1); z2 = rand(1); r2 = rand(1); otro centro inferior, radio
v =[x 1-x2 y 1-y2 z 1-z2] ; Vector de conexión de doble centro
[m num]= min(ABS(v)); Encuentra el valor mínimo del vector
a = zero ( 1,3);a( número)= 1;? Vector unitario de dirección mínima
a1=cross(a, v); /sqrt(sum(a1.^2)); Calcular la base de una dirección
a2 = cross(a1, v); /sqrt(sum(a2.^2)); Calcular base ortogonal
deg=linspace(0, 360, 100); 0~360 grados y 100 puntos, se pueden agregar más puntos según sea necesario.
p 1 = repmat([x 1y 1 z 1], longitud(grados), 1) (cosd(grados)' * a 1 sind(grados)' * a2)* r 1; Círculo
p2=repmat([x2 y2 z2], length(deg), 1) (cosd(deg)' * a 1 sind(deg)' * a2)* R2; p>
plot3([x1 x2],[y1 y2],[z1 z2],'.-r');Espera;? Dibuja una línea que conecte los dos centros
plot3(p1(:,1), p1(:,2), p1(:,3),'-'); dibuja un círculo inferior
plot3(p2(:,1),p2(:,2),p2(:,3),'-'); arrastrar;? Dibuja otro círculo inferior
Eje igual