我一直在想要在網上尋找我想要的東西,但我沒有太多的運氣,所以我想我會問這裏。Matlab:顏色編碼一個3D劇情
是否可以用不同的顏色精確定位並在圖上顯示兩個圖之間有交點的點?
感謝您提供任何幫助。
下面是代碼:
file1 = fopen('C:\Program Files (x86)\Notepad++\avatar1.txt'); % open text file
file2 = fopen('C:\Program Files (x86)\Notepad++\avatar2.txt'); % open text file
file3 = fopen('C:\Program Files (x86)\Notepad++\avatar3.txt'); % open text file
tline1 = fgetl(file1); % read line by line and remove new line characters
tline2 = fgetl(file2); % read line by line and remove new line characters
tline3 = fgetl(file3); % read line by line and remove new line characters
% declare empty arrays
CX1 = [];
CY1 = [];
CZ1 = [];
CX2 = [];
CY2 = [];
CZ2 = [];
CX3 = [];
CY3 = [];
CZ3 = [];
while ischar(tline1) % true if tline is a character array
temp = cell2mat(textscan(tline1, '<%n,%n,%n>'));
% convert all the cell fields to a matrix
CX1 = vertcat(CX1, temp(1));
CY1 = vertcat(CY1, temp(2));
CZ1 = vertcat(CZ1, temp(3));
tline1 = fgetl(file1);
end
while ischar(tline2) % true if tline is a character array
temp = cell2mat(textscan(tline2, '<%n,%n,%n>'));
% convert all the cell fields to a matrix
CX2 = vertcat(CX2, temp(1));
CY2 = vertcat(CY2, temp(2));
CZ2 = vertcat(CZ2, temp(3));
tline2 = fgetl(file2);
end
while ischar(tline3) % true if tline is a character array
temp = cell2mat(textscan(tline3, '<%n,%n,%n>'));
% convert all the cell fields to a matrix
CX3 = vertcat(CX3, temp(1));
CY3 = vertcat(CY3, temp(2));
CZ3 = vertcat(CZ3, temp(3));
tline3 = fgetl(file3);
end
fclose(file1); % close the file
fclose(file2); % close the file
fclose(file3); % close the file
plot3(CX1, CY1, CZ1) % plot the data and label the axises
plot3(CX2, CY2, CZ2)
plot3(CX3, CY3, CZ3)
xlabel('x')
ylabel('y')
zlabel('z')
grid on
axis square
rotate3d on; % activate interactive mouse rotation
我不完全理解你的問題 - 你想用一種顏色繪製一個圖形,用另一種顏色疊加另一個圖形,然後突出顯示相交點? – n00dle
是的,但它是3張圖。所以3種不同的顏色會突出顯示或精確定位交叉點。 –
您是否在問如何在交叉點中放置標記......或者如何確定是否存在交叉點,以及如果存在,它們在哪裏? – tmpearce