나는 3D 점 구름이 있습니다. 나는 그들을 표면으로 그려야한다. meshdrid, griddata, scatteredInterpolant, trisurf-delaunay를 사용하여 변형을 시도했습니다. 아무것도 작동하지 않습니다. 나는이 질문이 많이 논의되었지만 몇 가지 중요한 세부 사항을 이해하지 못하는 것 같습니다. 내가 지금 가지고있는 코드 : 표면 기능을 그릴 수있는 방법을 찾기 위해matlab에 3D 구름의 표면을 그립니다.
당신이 나를 도울 수 :
load('coords.mat')
figure()
subplot(1,2,1)
plot3(x,y,z,'.')
axis off
view(3)
subplot(1,2,2)
C=gray(numel(x)); % unsuccessful attempt
[~,idx]=sort(z); % to have
C=C(idx,:); % illumination
scatter3(x,y,z,50,C,'filled')
axis off
view(3)
는 다음과 같은 이미지를 생성합니다.
어떤 점으로 표면 내부에있을 수 있습니다 (수 있습니다 내 문제)
2) 어떻게 '보이지 않는'점을 제거하려면?
다양한 사례에 대한 해결책이 필요합니다. 그림과 데이터는 단지 하나의 예일뿐입니다.
매트 파일을 here에 다운로드 할 수 있습니다.
P.
중요 -이 도트의 좌표를 임의의 베 지어 곡선의 회전으로 얻습니다.
좌표 here이다 : 케이스 데이터
UPDATE
상기 I 도트의 작은 양의 또 다른 세트를 생성 너무 크다.
Coool !!! 감사!! 나는이 벡터들을 직접 생성한다 - 그것은 내 질문에 길고 중요한 코드는 아니다. – zlon
미안하지만 바보 같은 문제가 있습니다. x, y, z가 정사각형 매트릭스로 재구성 될 수있는 것은 아닙니다 (두 번째 데이터 세트 참조). 보간을해야합니까? – zlon
@ zlon 이것이 내가 데이터가 어디서 유래했는지 이야기하고 싶었던 이유입니다.) 벡터는 x 방향의 조각입니다. 크기가 100x100으로 재구성 된 이유입니다. 그것은 정사각형 수가 아니기 때문에가 아니라 100 개의 조각이 있었기 때문입니다. 작은 데이터 세트의 경우 크기를 100x60으로 변경해야합니다. 이러한 작업은 데이터를 생성 할 때보다 쉽게 제어 할 수 있습니다. –