第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在曲面圖上投影一條線?

如何在曲面圖上投影一條線?

慕運(yùn)維8079593 2022-01-18 15:36:38
我有一個從存儲在 CSV 文件中的點數(shù)據(jù)創(chuàng)建的曲面圖。如果我想在 3D 中創(chuàng)建的曲面上投影一條線(漂浮在曲面上方)。方法是什么?我嘗試了以下帖子中的代碼,用于在 xy-xz-yz 平面上投影一條線。我可以看到它在 xy-xz-yz 平面上投影線的端點。如果我想在使用點數(shù)據(jù)創(chuàng)建的表面上進(jìn)行投影。我沒有表面方程。我已經(jīng)創(chuàng)建了可用的點數(shù)據(jù)。這是我想要實現(xiàn)的模型圖像: 我已經(jīng)生成了一個曲面,其中給定的散點存儲在 CSV 文件中?,F(xiàn)在我想將曲面頂部的線(紅線)投影到曲面(作為綠線)。
查看完整描述

1 回答

?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗 獲得超6個贊

讓我們構(gòu)建一個通用的 MCVE,首先我們導(dǎo)入所需的包:


import numpy as np

from scipy import interpolate

import matplotlib.pyplot as plt

from mpl_toolkits import mplot3d

import matplotlib.tri as mtri

np.random.seed(123456) # Fix the random seed

現(xiàn)在我們?yōu)橐粋€表面生成一個 3D 點的集合S(注意它是一個不規(guī)則的網(wǎng)格):


NS = 100

Sx = np.random.uniform(low=-1., high=1., size=(NS,))

Sy = np.random.uniform(low=-1., high=1., size=(NS,))

Sz = -(Sx**2 + Sy**2) + 0.1*np.random.normal(size=(NS,))

和一個參數(shù)曲線P:


NP = 100

t = np.linspace(-1, 1, NP)

Px = t

Py = t**2 - 0.5

Pz = t**3 + 1

解決問題的關(guān)鍵是LinearNDInterpolator在 N 維中執(zhí)行分段線性插值:


PSz = interpolate.LinearNDInterpolator(list(zip(Sx, Sy)), Sz)(list(zip(Px,Py)))

只需要重塑數(shù)據(jù)以適應(yīng)方法簽名,從單獨的向量到形狀矩陣,(Nsample,Ndims)可以轉(zhuǎn)換為:


list(zip(Sx, Sy))

我們可以從頂部查看數(shù)據(jù):


tri = mtri.Triangulation(Sx, Sy)

fig, axe = plt.subplots()

axe.plot(Sx, Sy, '+')

axe.plot(Px, Py)

axe.triplot(tri, linewidth=1, color='gray')

axe.set_aspect('equal')

axe.grid()

http://img1.sycdn.imooc.com//61e66e3c000131c902750248.jpg

完整的 3D 結(jié)果如下所示:


axe = plt.axes(projection='3d')

axe.plot_trisurf(tri, Sz, cmap='jet', alpha=0.5)

axe.plot(Px, Py, Pz)

axe.plot(Px, Py, PSz, linewidth=2, color='black')

axe.scatter(Sx, Sy, Sz)

axe.view_init(elev=25, azim=-45)

http://img1.sycdn.imooc.com//61e66e4c00012e1803460227.jpg

axe.view_init(elev=75, azim=-45)


http://img1.sycdn.imooc.com//61e66e5900011e6103480225.jpg

查看完整回答
反對 回復(fù) 2022-01-18
  • 1 回答
  • 0 關(guān)注
  • 255 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號