国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

wpf從cs代碼創(chuàng)建簡(jiǎn)單3D物體和3D Tools研究

這篇具有很好參考價(jià)值的文章主要介紹了wpf從cs代碼創(chuàng)建簡(jiǎn)單3D物體和3D Tools研究。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前面已經(jīng)說(shuō)了,WPF項(xiàng)目中引入3DTools dll之后,在xaml中加入它的命名空間,

xmlns:tools="clr-namespace:_3DTools;assembly=3DTools"

把<Viewport3D>標(biāo)簽包含在<tools:TrackballDecorator>標(biāo)簽之中,就可以用鼠標(biāo)控制??<Viewport3D> 中的3d模型;

看一下單獨(dú)用3DTools dll能否加載3d模型;沒(méi)有資料;

用ILSpy看一下;

wpf從cs代碼創(chuàng)建簡(jiǎn)單3D物體和3D Tools研究,.Net,圖形學(xué)和3D,wpf,MeshGeometry3D

? ? 直接從3DTools包含的類(lèi),類(lèi)名看,有數(shù)學(xué)工具類(lèi),可能提供一些矩陣運(yùn)算;有前面的TrackballDecorator類(lèi);還有碰撞檢測(cè)類(lèi),hit;看不出是否有加載3d模型的類(lèi);有時(shí)間再看;

之前做過(guò)一些wpf 簡(jiǎn)單3D物體,都是直接寫(xiě)在xaml代碼里;

下面從cs代碼里做一下簡(jiǎn)單3D物體;

在xaml中給3d根節(jié)點(diǎn)加上名稱屬性,這樣可以在cs代碼中引用此節(jié)點(diǎn);

? ? <Viewport3D Name="v3">......</Viewport3D>

xaml代碼如下;

<Window x:Class="mytest1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:tools="clr-namespace:_3DTools;assembly=3DTools"
        Title="MainWindow" Height="350" Width="525">
    <Grid Width="300" Height="200" ShowGridLines="True">
        <tools:TrackballDecorator>
        <Viewport3D Name="v3">
            
        </Viewport3D>
        </tools:TrackballDecorator>
    </Grid>
</Window>

cs代碼如下;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Media.Media3D;

namespace mytest1
{
    /// <summary>
    /// MainWindow.xaml 的交互邏輯
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            // 創(chuàng)建一個(gè)3D正方體
            MeshGeometry3D mesh = new MeshGeometry3D();
            mesh.Positions = new Point3DCollection()
            {
                new Point3D(-1, 1, 1),
                new Point3D(1, 1, 1),
                new Point3D(-1, -1, 1),
                new Point3D(1, -1, 1),
                new Point3D(-1, 1, -1),
                new Point3D(1, 1, -1),
                new Point3D(-1, -1, -1),
                new Point3D(1, -1, -1),
            };
            mesh.TriangleIndices = new Int32Collection()
            {
                0, 1, 2,
                1, 3, 2,
                1, 5, 3,
                5, 7, 3,
                5, 4, 7,
                4, 6, 7,
                4, 0, 6,
                0, 2, 6,
                2, 3, 6,
                3, 7, 6,
                4, 5, 0,
                5, 1, 0,
            };

            // 創(chuàng)建一個(gè)材質(zhì)
            DiffuseMaterial material = new DiffuseMaterial(new SolidColorBrush(Colors.Blue));

            // 創(chuàng)建一個(gè)模型
            GeometryModel3D model = new GeometryModel3D(mesh, material);

            // 創(chuàng)建一個(gè)模型組
            Model3DGroup group = new Model3DGroup();
            group.Children.Add(model);

            // 將模型組添加到Viewport3D中
            v3.Children.Add(new ModelVisual3D() { Content = group });

            PerspectiveCamera camera = new PerspectiveCamera();
            camera.Position = new Point3D(0, 0, 5);
            camera.LookDirection = new Vector3D(0, 0, -1);
            camera.FieldOfView = 60;
            v3.Camera = camera;
        }
    }
}

? ? ?從cs代碼中創(chuàng)建一個(gè)立方體模型;攝像機(jī)也在cs代碼中創(chuàng)建;然后加入名為"v3"的節(jié)點(diǎn);

運(yùn)行如下;

wpf從cs代碼創(chuàng)建簡(jiǎn)單3D物體和3D Tools研究,.Net,圖形學(xué)和3D,wpf,MeshGeometry3D

wpf從cs代碼創(chuàng)建簡(jiǎn)單3D物體和3D Tools研究,.Net,圖形學(xué)和3D,wpf,MeshGeometry3D?


? ? ? ?

順帶看一下ILSpy的許可證,它是MIT許可;
MIT許可證(The MIT License)是許多軟件授權(quán)條款中,被廣泛使用的其中一種;與其他常見(jiàn)的軟件授權(quán)條款(如GPL、LGPL、BSD)相比,MIT是相對(duì)寬松的軟件授權(quán)條款;

MIT內(nèi)容與三條款BSD許可證(3-clause BSD license)內(nèi)容頗為近似,但是賦予軟件被授權(quán)人更大的權(quán)利與更少的限制;文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-689721.html

到了這里,關(guān)于wpf從cs代碼創(chuàng)建簡(jiǎn)單3D物體和3D Tools研究的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • L2CS-Net: 3D gaze estimation

    L2CS-Net: 3D gaze estimation

    論文地址:L2CS-Net: Fine-Grained Gaze Estimation in Unconstrained Environments 論文代碼:https://github.com/ahmednull/l2cs-net 論文出處:arXiv,2022 論文單位:Otto-von-Guericke-University, Magdeburg, Germany 人類(lèi)的注視(gaze)是在人機(jī)交互和虛擬現(xiàn)實(shí)等各種應(yīng)用中使用的關(guān)鍵線索。 近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)

    2024年02月14日
    瀏覽(23)
  • 【圖像處理】基于雙目視覺(jué)的物體體積測(cè)量算法研究(Matlab代碼實(shí)現(xiàn))

    【圖像處理】基于雙目視覺(jué)的物體體積測(cè)量算法研究(Matlab代碼實(shí)現(xiàn))

    ???????? 歡迎來(lái)到本博客 ???????? ??博主優(yōu)勢(shì): ?????? 博客內(nèi)容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ?? 座右銘: 行百里者,半于九十。 ?????? 本文目錄如下: ?????? 目錄 ??1 概述 ??2 運(yùn)行結(jié)果 ??3 參考文獻(xiàn) ??4 Matlab代碼實(shí)現(xiàn) 本文運(yùn)用

    2024年02月11日
    瀏覽(24)
  • THREE.JS使用詳細(xì)(three.js創(chuàng)建3d物體,three.js的使用方式)

    THREE.JS使用詳細(xì)(three.js創(chuàng)建3d物體,three.js的使用方式)

    簡(jiǎn)述:three.js封裝了WebGL的底層細(xì)節(jié),是一款運(yùn)行在瀏覽器中的 3D 引擎,可以用它創(chuàng)建各種三維場(chǎng)景,包括了攝影機(jī)、光影、材質(zhì)等各種對(duì)象,目前在Git上已經(jīng)擁有90k+的star,今天用three.js來(lái)構(gòu)建一個(gè)三維模型; 1、首先,在項(xiàng)目中需要下載threejs的相關(guān)依賴; 2、在js頁(yè)面引入使

    2024年01月23日
    瀏覽(232)
  • 【CSS3】CSS3 3D 轉(zhuǎn)換 ① ( CSS3 3D 轉(zhuǎn)換簡(jiǎn)介 | 3D 物體與 2D 物體區(qū)別 | 3D 空間坐標(biāo)系 | 常用的 3D 轉(zhuǎn)換屬性 | 3D 位移轉(zhuǎn)換語(yǔ)法 | 代碼示例 )

    【CSS3】CSS3 3D 轉(zhuǎn)換 ① ( CSS3 3D 轉(zhuǎn)換簡(jiǎn)介 | 3D 物體與 2D 物體區(qū)別 | 3D 空間坐標(biāo)系 | 常用的 3D 轉(zhuǎn)換屬性 | 3D 位移轉(zhuǎn)換語(yǔ)法 | 代碼示例 )

    3D 顯示的物體 與 平面 2D 顯示的物體有明顯的不同 , 3D 顯示效果有 近大遠(yuǎn)小 的 特點(diǎn) ; 元素的 2D 的 轉(zhuǎn)換效果 有 平移 , 旋轉(zhuǎn) , 縮放 效果 , 同樣有對(duì)應(yīng)的 3D 轉(zhuǎn)換效果 ; 2D 平面坐標(biāo)系 中 , 只有 x 軸 和 y 軸 ; 3D 空間坐標(biāo)系 比 2D 平面坐標(biāo)系 多了一個(gè) Z 軸 ; x 軸 : 水平向右 ; 左側(cè)是

    2024年02月12日
    瀏覽(32)
  • Unity2022里用ViusalStudio2019創(chuàng)建代碼報(bào)錯(cuò)CS8032 C# 無(wú)法從 {1}: {2} 創(chuàng)建分析器實(shí)例 {0}。

    Unity2022里用ViusalStudio2019創(chuàng)建代碼報(bào)錯(cuò)CS8032 C# 無(wú)法從 {1}: {2} 創(chuàng)建分析器實(shí)例 {0}。

    用Unity2022在vs2019里創(chuàng)建腳本時(shí)遇到了CS8032 問(wèn)題 首先在Assets文件下創(chuàng)建一個(gè)名為CS8032WarningFixer的腳本 ? 在腳本里輸入這些代碼? using System.Linq; using System.Xml.Linq; using UnityEditor; public class CS8032WarningFixer : AssetPostprocessor { ? ? private static string OnGeneratedCSProject(string path, string content

    2024年02月16日
    瀏覽(53)
  • 【.NET 深呼吸】全代碼編寫(xiě)WPF程序

    【.NET 深呼吸】全代碼編寫(xiě)WPF程序

    學(xué)習(xí) Code 總有這樣一個(gè)過(guò)程:入門(mén)時(shí)候比較依賴設(shè)計(jì)器、標(biāo)記語(yǔ)言等輔助工具;等到玩熟練了就會(huì)發(fā)現(xiàn)純代碼寫(xiě) UI 其實(shí)更高效。而且,純代碼編寫(xiě)也是最靈活的。Windows Forms 項(xiàng)目是肯定可以全代碼編寫(xiě)的,哪怕你使用了設(shè)計(jì)器,它最后也是生成代碼文件;而 WPF 就值得探索一

    2024年02月09日
    瀏覽(19)
  • 【.NET深呼吸】用代碼寫(xiě)WPF控件模板

    【.NET深呼吸】用代碼寫(xiě)WPF控件模板

    這一次咱們來(lái)探究一下怎么用純代碼寫(xiě) WPF 模板。模板有個(gè)共同基類(lèi)?FrameworkTemplate,數(shù)據(jù)模板、控件模板等是從此類(lèi)派生的,因此,該類(lèi)已定義了一些通用成員。 用代碼構(gòu)建模板,重要的成員是?VisualTree 屬性,它的類(lèi)型是?FrameworkElementFactory??梢?jiàn),模板不是直接創(chuàng)建可視化

    2024年02月09日
    瀏覽(20)
  • unity3D中用Mesh Collider創(chuàng)建的碰撞體與物體模型位置有偏差的解決方法

    unity3D中用Mesh Collider創(chuàng)建的碰撞體與物體模型位置有偏差的解決方法

    1.相信很多小伙伴在使用Mesh Collider時(shí)都遇到過(guò)下面這個(gè)情況: 1.解決方法:在這個(gè)對(duì)象Alpaca下面新建一個(gè)空對(duì)象Collider,我們把Mesh Collider添加到這個(gè)空對(duì)象上面就可以調(diào)整碰撞體的位置了? 3.完成效果:

    2024年02月13日
    瀏覽(102)
  • dotnet 簡(jiǎn)單方法在一個(gè)進(jìn)程內(nèi)同時(shí)跑起 WPF 和 ASP.NET Core 框架

    dotnet 簡(jiǎn)單方法在一個(gè)進(jìn)程內(nèi)同時(shí)跑起 WPF 和 ASP.NET Core 框架

    從設(shè)計(jì)架構(gòu)上,無(wú)論是 WPF 還是 ASP.NET Core 框架,都是在 dotnet 運(yùn)行時(shí)上層的應(yīng)用,兩個(gè)框架處于平級(jí)的結(jié)構(gòu)。理論上講,兩個(gè)平級(jí)的框架只要不存在特殊的情況,都是能夠相容存在的。本文將和大家介紹一個(gè)非常簡(jiǎn)單的方法,在一個(gè)進(jìn)程內(nèi)同時(shí)跑起 WPF 和 ASP.NET Core 框架 在一

    2024年04月26日
    瀏覽(30)
  • Unity3D通過(guò)代碼修改RGB值來(lái)控制UI與物體的Color顏色

    Unity3D通過(guò)代碼修改RGB值來(lái)控制UI與物體的Color顏色

    在實(shí)際應(yīng)用過(guò)程中,經(jīng)常有需要將某一物體顏色修改成特定顏色的情況,此時(shí)Color中自帶的顏色就不夠用了,此時(shí)我們就需要通過(guò)用代碼修改RGB值來(lái)控制顏色。 下面以修改TextMeshProUGUI的字體顏色為例 這樣直接運(yùn)行,無(wú)論Color后的括號(hào)里是什么樣的參數(shù),字體顏色大概率為白色

    2024年02月11日
    瀏覽(59)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包