1. 程式人生 > >經過一些點,畫三維3D曲面,貝塞爾曲面

經過一些點,畫三維3D曲面,貝塞爾曲面

需求:有時間T-軸,頻率F-軸,幅度A-軸。同一時間點的,F-軸上有4個頻點,35KHz,36KHz,37KHz,38KHz。

這4個頻率對應的有不同的幅度A,根據List<int[]>畫出一個頻帶,表示不同時間,4個頻率的幅度值。

本專案是WPF專案,使用到了GitHub的開源專案,helix-toolkit

網址裡面有該開源專案的介紹,說明和使用方法。

話不多說,先上圖讓大家看看效果。





前兩張圖是最終應用程式使用的SurfacePlot庫專案的效果,紅色的圓點是經過的點,也是我們已知的點,把滑鼠懸停在紅色點上可以顯示該點的z座標值,同時該點變成金色。下面兩張圖是開發該專案時使用的Demo,表達可以改變曲面的顏色。

下圖是使用如下資料計算出來的曲面。

var hehe = new List<int[]> {
                new int[4]  { 24499000,2,5,10000000} ,
                new int[4] { 2,1000,10000000,3} ,
                new int[4]  { 5,2,100000000,0 },
                new int[4] {0 ,3 ,3,5} };
            for (int i = 0; i < 3; i++)
            {
                hehe.Add(hehe[i]);
            }

只取上面資料的第一條顯示如下:


先通過已知的x值相同的4個點,計算4個點中間的點(每兩個點之間有9個點)一列一共有31個點。再通過同樣的方法計算y軸相同,每兩個已知點之間的9個插入點。

4個點可以將曲線分成3段,左右兩邊的曲線上的點通過二次貝塞爾曲線計算,需要解一元二次方程。中間曲線上的點通過3次貝塞爾曲線計算,需要解一元三次方程。這些演算法都在程式碼中實現。

解一元二次,一元三次方程的演算法來源,在原始碼裡面都有註釋。

當只有兩條資料的時候,沒法通過3個點計算兩次貝塞爾曲線,所以,我將第二列點,複製到第三列計算曲面。演算法如下圖:


如果需要技術支援,可以聯絡扣扣:592589365,Email:[email protected]

相關推薦

經過一些3D曲面曲面

需求:有時間T-軸,頻率F-軸,幅度A-軸。同一時間點的,F-軸上有4個頻點,35KHz,36KHz,37KHz,38KHz。這4個頻率對應的有不同的幅度A,根據List<int[]>畫出一個頻帶,表示不同時間,4個頻率的幅度值。本專案是WPF專案,使用到了Git

使用Unity一條平滑曲線(曲線)並使小球沿曲線運動

這裡直接講解在U3D中的實現方式 直接拿三階貝塞爾曲線為例,首先觀察下圖: 從圖中可以看出,只有四個點是保持不變的,分別是P0,P1,P2,P3,這四個點兩兩相連得到三個線段 (1)在上四點構成的三個線段中,p0-p1上有到一個點,p1

關於opengl中的矩陣平移矩陣旋轉推導過程理解 OpenGL計算機圖形學的一些必要矩陣運算知識 glTranslatef(x,y,z)glRotatef(angle,x,y,z)函式詳解

    原文作者:aircraft 原文連結:https://www.cnblogs.com/DOMLX/p/12166896.html     為什麼引入齊次座標的變換矩陣可以表示平移呢? - Yu Mao的回答 - 知乎 https://www.zhihu.com/

【laravel5.4+vue.js】laravel 循環數組解決:htmlentities() expects parameter 1 to be string, array given

mode form BE 名稱 rule arr expect checkbox pre laravel循環三維數組 +++ vue.js循環三維數組 (數據均是以三維數組形式存在的) <form-item

autocad匯報bim匯報視圖匯報像ppt那樣匯報

image images 時間 都是 slide com auto gif 視圖 在大部分場景中,工程師可以用cad進行匯報,避免去做PPT,浪費時間,ppt一般都是用一次就丟棄。而工程師對於設計的中間匯報,或三維bim匯報,評審匯報,展示匯報等,都可以直接用cad軟件,方

python之圖像

nump lib 工具包 數組 畫出 float 生成 import code 一:利用的包:(1)構建三維對象:mpl_toolkits.mplot3d裏面導入Axes3D(2)數據方面操作:numpy(3)繪圖工具包:matplotlib.pyplot 二:繪圖:1、繪

視覺化助設計與管理高效對接

擁有年生產15萬臺套汽車座椅能力的江鈴李爾,研發實力同樣雄厚。企業擁有著較高的三維應用水平,所有設計資料以三維為主。目前,江鈴李爾在PDM/CAPP系統上集成了3D輕量化瀏覽元件,全面重建了企業的三維視覺化研發管理平臺。設計師、工藝人員、質量人員,均可在平臺上完成產品設計、工藝規劃、質量檢查等工作。實現了資料

matlab

從excell中讀取資料,並繪出三維圖 clear all; clc; X_t= 1:1:12; Y = xlsread('22.xlsx','sheet1','A4:A1266'); Y_wavelenth = Y'; M = xlsread('22.xlsx','sheet1',

Excel表格中的氣泡圖你會做嗎?

今天給大家分享一下Excel表格中的三維氣泡圖的製作方法。 效果圖: 第一步:插入氣泡圖 選中單元格資料區域,點選插入---散點圖---三維氣泡圖即可。 具體操作如下: 第二步:更改資料系列 選中圖表,單擊滑鼠右鍵設定選擇資料,選中銷售額(X軸)進行刪除,再點選編

VoxelNet:基於雲的物體檢測的端到端學習

https://arxiv.org/pdf/1711.06396.pdf                   

matplotlib直線圖

https://blog.csdn.net/hustqb/article/details/78180337 matplotlib——3D繪圖教程 https://blog.csdn.net/weixin_40198632/article/details/78472015 https

圓柱上直線切口形成靜態座標系方程

圓柱上直線切口,形成三維靜態座標系方程為:             X=R*COS(θ);       &n

openGL網格座標旋轉縮放燈光設定紋理讀取模型讀取(MFC單文件)

1.三維網格座標建立 2.基本3維圖形建立 3.滑鼠相應旋轉縮放 4.鍵盤相應旋轉縮放 5.燈光設定 6.紋理載入對映 7.讀取模型 關於MFC配置編寫openGL網上有很多教程 需要的函式建立一般是: OnCreat()

Matplotlib學習筆記——

用Matplotlib畫三維圖 最基本的三維圖是由(x, y, z)三維座標點構成的線圖與散點圖,可以用ax.plot3D和ax.scatter3D函式來建立,預設情況下,散點會自動改變透明度,以在平面上呈現出立體感 三維的線圖和散點圖 #

Python圖-----插值平滑資料

一、二維的插值方法: 原始資料(x,y) 先對橫座標x進行擴充資料量,採用linspace。【如下面例子,由7個值擴充到300個】 採用scipy.interpolate中的spline來對縱座標資料y進行插值【也由7個擴充到300個】。 畫圖 import matplotli

excel地圖

感謝關注天善智慧,走好資料之路↑↑↑歡迎關注天善智慧,我們是專注於商業智慧BI,大資料,資料分析領域的垂直社群,學習,問答、求職一站式搞定!本篇文章開始教大家如何使用向量素材在Excel、PPT中自定義精美的資料分析圖表。使用向量素材製作資料分析報告其實並不難,最常見的就是形式就是使用向量地圖製作資料地圖報告

[GitHub開源]基於HTML5實現的輕量級Google Earth地圖引擎帶你暢遊世界

A WebGL virtual globe and map engine WebGlobe WebGlobe是基於HTML5原生WebGL實現的輕量級Google Earth三維地圖引擎。

建立直線(Line)PolyLine多線段(PolyLine3d)

Imports ZwSoft.ZwCAD.Runtime Imports ZwSoft.ZwCAD.ApplicationServices Imports ZwSoft.ZwCAD.DatabaseServices Imports ZwSoft.ZwCAD.Geometry

在vs2013中執行PCL(用來處理雲等操作)程式

      有的同學一開始學習PCL的時候,會去看PCL中文官網或者《點雲庫PCL學習教程》(朱德海)這書,首先我建議多去看英文官網,裡面的教程比較新,內容豐富。       另外,教程裡面PCL程式

ROS_PCL+Rviz建立雲並顯示

1.程式包的配置等參照 第一個PCL程式 2.程式碼.cpp #include<ros/ros.h> #include<pcl/point_cloud.h> #include&