unity \t\n

时间: 2023-09-16 14:15:18 浏览: 21
Unity是一款跨平台的游戏开发引擎,可以用于创建2D和3D的游戏、虚拟现实(VR)和增强现实(AR)应用程序。它提供了一个强大的图形渲染引擎,物理引擎以及其他丰富的功能和工具,可以帮助开发者轻松构建游戏和应用程序。Unity还支持多个平台,包括Windows、Mac、iOS、Android等,使开发者可以在不同的设备上发布和运行他们的项目。 关于Unity的开发环境搭建,首先需要下载和安装Visual Studio,建议使用2016版本以上的。接下来需要下载Unity软件,可以在Unity官方网站上找到下载路径。对于中国用户,可以在中国的Unity官方网站上下载。为了保持稳定性,建议下载LTS(Long-term Support)版本,即长期支持版本。最后,需要访问MSDN工具站网址获取有关编程的技术文档。这是一个Microsoft提供的最全面的编程资源网站。 在Unity中,开发者可以使用C#语言进行编程。C#是一种面向对象的编程语言,继承了C和C++的一些特性,但去除了一些复杂的特性,使其更简单易用。C#使用.NET Framework和.NET Core开源框架,可以编写具有强大功能的代码。在编写C#代码时,需要注意代码的可读性和维护性。 创建一个Unity项目时,可以使用Visual Studio来编辑代码。在解决方案中新建一个项目,并设置需要运行的项目为启动项目。可以在项目中创建.cs文件来编写C#代码。一个常见的C#文件的结构包括命名空间、类和入口函数Main。编写完代码后,可以编译程序并运行,获取执行结果。 总结起来,Unity是一款跨平台的游戏开发引擎,可以使用C#语言进行编程。在使用Unity之前,需要搭建开发环境,包括下载Visual Studio和Unity软件,以及访问MSDN工具站获取技术文档。在创建项目和编写代码时,需要注意一些基本的操作和规范。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Unity基础学习之C#学习(一)](https://blog.csdn.net/qingtian_111/article/details/124289611)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

相关推荐

以下是一个基本的Unity URP次表面散射(SSS)着色器示例: Shader "Custom/URP SSS" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _NormalMap ("Normal Map", 2D) = "bump" {} _SubsurfaceColor ("Subsurface Color", Color) = (1,1,1,1) _SubsurfaceRadius ("Subsurface Radius", Range(0.0,1.0)) = 0.25 _ThicknessMap ("Thickness Map", 2D) = "white" {} _SpecularColor ("Specular Color", Color) = (0.5,0.5,0.5,1) _Glossiness ("Smoothness", Range(0,1)) = 0.5 _Metallic ("Metallic", Range(0,1)) = 0.0 } SubShader { Tags {"RenderType"="Opaque"} LOD 100 Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; float3 normal : NORMAL; float4 tangent : TANGENT; }; struct v2f { float2 uv : TEXCOORD0; float3 worldPos : TEXCOORD1; float3 worldNormal : TEXCOORD2; float3 worldTangent : TEXCOORD3; float3 worldBitangent : TEXCOORD4; UNITY_VERTEX_INPUT_INSTANCE_ID }; sampler2D _MainTex; sampler2D _NormalMap; sampler2D _ThicknessMap; float4 _MainTex_ST; float4 _ThicknessMap_ST; float _SubsurfaceRadius; float4 _SubsurfaceColor; float4 _SpecularColor; float _Glossiness; float _Metallic; float3 CalculateTangent(float3 n, float3 p, float2 uv, float3 dpdu) { float3 dpdv = cross(n, dpdu); float3 t = normalize(dpdv - uv.y * dpdu); return t; } float3 CalculateBitangent(float3 n, float3 p, float2 uv, float3 dpdu) { float3 dpdv = cross(n, dpdu); float3 b = normalize(cross(n, dpdv)); return b; } float3 CalculateSubsurface(float3 worldPos, float3 worldNormal, float3 worldTangent, float3 worldBitangent) { // Calculate tangent space vectors float3x3 TBN = float3x3(worldTangent, worldBitangent, worldNormal); // Calculate thickness float thickness = tex2D(_ThicknessMap, TRANSFORM_TEX(worldPos, _ThicknessMap)).r; // Calculate subsurface scattering float3 subsurface = _SubsurfaceColor.rgb * thickness * _SubsurfaceRadius; // Transform subsurface scattering to world space subsurface = mul(TBN, subsurface); return subsurface; } float4 LightingURP(SurfaceOutputStandard s, float3 lightDir, float3 worldPos, float atten) { // Calculate subsurface scattering float3 subsurface = CalculateSubsurface(worldPos, s.Normal, s.Tangent, s.Bitangent); // Calculate diffuse lighting float diff = max(0.0, dot(s.Normal, lightDir)); float3 diffuse = (s.Albedo * _LightColor0.rgb * diff); // Calculate specular lighting float3 viewDir = normalize(UnityWorldSpaceViewDir(worldPos)); float3 halfDir = normalize(lightDir + viewDir); float spec = pow(max(0.0, dot(s.Normal, halfDir)), s.Smoothness); float3 specular = _SpecularColor.rgb * _LightColor0.rgb * spec; // Combine lighting float3 finalColor = ((diffuse + specular) * atten) + subsurface; return float4(finalColor, s.Alpha); } v2f vert (appdata v) { v2f o; o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; o.worldNormal = UnityObjectToWorldNormal(v.normal); o.worldTangent = UnityObjectToWorldDir(UnityObjectToWorldDir(v.tangent.xyz, UNITY_MATRIX_IT_MV), UNITY_MATRIX_IT_MV); o.worldBitangent = cross(o.worldNormal, o.worldTangent) * v.tangent.w; o.uv = TRANSFORM_TEX(v.uv, _MainTex); UNITY_SETUP_INSTANCE_ID(v); return o; } fixed4 frag (v2f i) : SV_Target { SurfaceOutputStandard s = SurfaceOutputStandard(); s.Albedo = tex2D(_MainTex, i.uv).rgb; s.Normal = UnpackNormal(tex2D(_NormalMap, i.uv)); s.Smoothness = _Glossiness; s.Metallic = _Metallic; float3 worldPos = i.worldPos; float3 worldNormal = normalize(i.worldNormal); float3 worldTangent = normalize(i.worldTangent); float3 worldBitangent = normalize(i.worldBitangent); float4 finalColor = LightingURP(s, normalize(_WorldSpaceLightPos0.xyz), worldPos, _LightColor0.a); return finalColor; } ENDCG } } FallBack "Diffuse" } 这个着色器包含了一个基本的表面纹理、法线贴图、次表面散射颜色和半径、厚度贴图、高光颜色、光滑度和金属度选项。在顶点着色器中,我们还计算了Tangent和Bitangent向量,并传递给片段着色器以计算次表面散射。在片段着色器中,我们计算了次表面散射、漫反射和高光光照,并将它们合并以产生最终颜色。请注意,此着色器是基于URP版本的标准表面着色器,并使用UnityCG.cginc文件中定义的LightingURP函数来计算光照。
以下是 Unity 中实现经纬度和 UTM 坐标转换的代码示例: csharp using UnityEngine; public class GPSToUTM : MonoBehaviour { public double longitude; public double latitude; void Start() { double easting, northing; int zone; LatLonToUTM(latitude, longitude, out easting, out northing, out zone); Debug.Log("UTM Zone: " + zone + " Easting: " + easting + " Northing: " + northing); } void LatLonToUTM(double lat, double lon, out double easting, out double northing, out int zone) { double a = 6378137.0; // GRS80 ellipsoid double k0 = 0.9996; double eccSquared = 0.00669438; double eccPrimeSquared; double e1 = (1 - Mathf.Sqrt(1 - (float)eccSquared)) / (1 + Mathf.Sqrt(1 - (float)eccSquared)); double N, T, C, A, M; double latRad = lat * Mathf.Deg2Rad; double lonRad = lon * Mathf.Deg2Rad; zone = Mathf.FloorToInt((float)((lon + 180.0) / 6.0) + 1.0); int nHemi = (lat >= 0) ? 1 : 0; double latRadTemp = (nHemi == 1) ? latRad : (-latRad); double lonRadTemp = lonRad - ((zone - 1) * 6.0 + 3.0) * Mathf.Deg2Rad; eccPrimeSquared = (eccSquared) / (1 - eccSquared); N = a / Mathf.Sqrt(1 - (float)eccSquared * Mathf.Sin((float)latRadTemp) * Mathf.Sin((float)latRadTemp)); T = Mathf.Tan((float)latRadTemp) * Mathf.Tan((float)latRadTemp); C = eccPrimeSquared * Mathf.Cos((float)latRadTemp) * Mathf.Cos((float)latRadTemp); A = Mathf.Cos((float)latRadTemp) * (float)(lonRadTemp); M = a * ((1 - (float)eccSquared / 4 - 3 * (float)eccSquared * (float)eccSquared / 64 - 5 * (float)eccSquared * (float)eccSquared * (float)eccSquared / 256) * (float)latRadTemp - (3 * (float)eccSquared / 8 + 3 * (float)eccSquared * (float)eccSquared / 32 + 45 * (float)eccSquared * (float)eccSquared * (float)eccSquared / 1024) * Mathf.Sin(2 * (float)latRadTemp) + (15 * (float)eccSquared * (float)eccSquared / 256 + 45 * (float)eccSquared * (float)eccSquared * (float)eccSquared / 1024) * Mathf.Sin(4 * (float)latRadTemp) - (35 * (float)eccSquared * (float)eccSquared * (float)eccSquared / 3072) * Mathf.Sin(6 * (float)latRadTemp)); easting = (double)(k0 * N * (A + (1 - T + C) * (float)(A * A * A) / 6 + (5 - 18 * T + T * T + 72 * C - 58 * eccPrimeSquared) * (float)(A * A * A * A * A) / 120) + 500000.0); northing = (double)(k0 * (M + N * Mathf.Tan((float)latRadTemp) * ((A * A / 2) + (5 - T + (9 * C) + (4 * C * C)) * (float)(A * A * A * A) / 24 + (61 - (58 * T) + (T * T) + (600 * C) - (330 * eccPrimeSquared)) * (float)(A * A * A * A * A * A) / 720))); if (nHemi == 0) { northing += 10000000.0; //10000000 meter offset for southern hemisphere } } } 其中,LatLonToUTM() 函数接受经度和纬度作为输入参数,并计算出相应的 UTM 坐标。在 Start() 函数中,我们可以将经度和纬度传递给函数,并打印出计算得到的 UTM 坐标。请注意,该代码示例中使用了 GRS80 椭球体和 UTM 投影,您可以根据需要进行修改。

Unity "System.ArgumentException: JSON must represent an object type.\r\n at (wrapper managed-to-native) UnityEngine.JsonUtility.FromJsonInternal(string,object,System.Type)\r\n at UnityEngine.JsonUtility.FromJson (System.String json, System.Type type) [0x0005c] in <d773524469e64e608a0d15b877a002d5>:0 \r\n at UnityEngine.JsonUtility.FromJson[T] (System.String json) [0x00001] in <d773524469e64e608a0d15b877a002d5>:0 \r\n at GameConfig+<>c__DisplayClass13_01[T].<LoadListAsync>b__0 (UnityEngine.TextAsset asset) [0x00014] in E:\\work\\ShootingRumble\\shootingrumble\\Assets\\_Scripts\\Config\\GameConfig.cs:95 \r\n at AssetsManager+<>c__DisplayClass1_01[T].<LoadAssetsAsyncByLabel>b__0 (T handle) [0x00001] in E:\\work\\ShootingRumble\\shootingrumble\\Assets\\_Scripts\\Core\\Manager\\AssetsManager.cs:35 \r\n at UnityEngine.ResourceManagement.ResourceManager+<>c__DisplayClass92_01[TObject].b__0 (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle x) [0x00000] in E:\\work\\ShootingRumble\\shootingrumble\\Library\\PackageCache\\com.unity.addressables@1.19.19\\Runtime\\ResourceManager\\ResourceManager.cs:746 \r\n at UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase1+<>c__DisplayClass57_0[TObject].<add_CompletedTypeless>b__0 (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle1[TObject] s) [0x00000] in E:\\work\\ShootingRumble\\shootingrumble\\Library\\PackageCache\\com.unity.addressables@1.19.19\\Runtime\\ResourceManager\\AsyncOperations\\AsyncOperationBase.cs:286 \r\n at DelegateList1[T].Invoke (T res) [0x00038] in E:\\work\\ShootingRumble\\shootingrumble\\Library\\PackageCache\\com.unity.addressables@1.19.19\\Runtime\\ResourceManager\\Util\\DelegateList.cs:69 "

### 回答1: 下面是一个简单的Unity脚本,可以读取文本文件并在Xcharts中绘制图表。请注意,这里使用的Xcharts版本是用于Unity的,而不是用于Web或其他平台的版本。 csharp using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using System.Linq; using XCharts; public class ChartGenerator : MonoBehaviour { public TextAsset dataFile; // 数据文件 public RectTransform chartRect; // 图表的RectTransform public float chartWidth = 800f; // 图表宽度 public float chartHeight = 400f; // 图表高度 public float pointSize = 5f; // 点的大小 void Start() { // 读取数据文件 string[] lines = dataFile.text.Split('\n'); List<Vector2> points = new List<Vector2>(); foreach (string line in lines) { string[] values = line.Trim().Split('\t'); if (values.Length >= 2) { float x = float.Parse(values[0]); float y = float.Parse(values[1]); points.Add(new Vector2(x, y)); } } // 创建图表 GameObject chartObj = new GameObject("Chart"); chartObj.transform.SetParent(transform); chartObj.AddComponent<RectTransform>(); chartObj.AddComponent<CanvasRenderer>(); chartObj.AddComponent<XCharts.XChart>(); chartObj.GetComponent<RectTransform>().anchoredPosition = Vector2.zero; chartObj.GetComponent<RectTransform>().sizeDelta = new Vector2(chartWidth, chartHeight); // 配置图表 XCharts.XChart chart = chartObj.GetComponent<XCharts.XChart>(); chart.title.text = "My Chart"; chart.title.subText = "Subtitle"; chart.series.SetSerieType(SerieType.Line); chart.series.lineSymbol.show = true; chart.series.lineSymbol.size = pointSize; chart.xAxis.type = Axis.AxisType.Value; chart.yAxis.type = Axis.AxisType.Value; chart.xAxis.minMaxType = Axis.AxisMinMaxType.Custom; chart.xAxis.min = points.Min(p => p.x); chart.xAxis.max = points.Max(p => p.x); chart.xAxis.interval = (chart.xAxis.max - chart.xAxis.min) / 10f; chart.AddSerieData(points); // 调整图表位置和大小 chartObj.GetComponent<RectTransform>().sizeDelta = new Vector2(chartWidth, chartHeight); chartRect.SetParent(chartObj.transform); chartRect.anchorMin = Vector2.zero; chartRect.anchorMax = Vector2.one; chartRect.offsetMin = Vector2.zero; chartRect.offsetMax = Vector2.zero; } } 需要注意的是,此脚本假定数据文件中的值是以制表符分隔的。如果您的数据文件使用其他分隔符,请相应地修改代码。此外,此脚本只能处理两列数据,如果您的数据文件包含更多列,请修改代码以适应您的数据结构。 ### 回答2: Unity是一种用于创建游戏和其他交互式应用程序的跨平台开发引擎。要实现读取C:\Kistler\DynoWare\Data\26WCut_1.txt数据并在Xcharts中绘制图表,需要进行以下步骤。 首先,我们需要使用Unity的C#脚本功能来编写代码。在Unity编辑器中,新建一个C#脚本,命名为"ChartData"。然后,使用文本编辑器打开该脚本以编写代码。 代码片段如下: C# using System; using System.Collections.Generic; using UnityEngine; using XCharts; public class ChartData : MonoBehaviour { void Start() { // 读取文本文件的路径 string filePath = @"C:\Kistler\DynoWare\Data\26WCut_1.txt"; // 定义两个列表,用于保存横坐标和纵坐标数据 List<float> xData = new List<float>(); List<float> yData = new List<float>(); // 读取文本文件的内容 string[] lines = System.IO.File.ReadAllLines(filePath); // 遍历每一行数据 foreach(string line in lines) { // 将每一行的数据以空格分隔开 string[] data = line.Split(' '); // 将分隔开的数据转换为浮点数并添加到对应的列表中 xData.Add(float.Parse(data[0])); yData.Add(float.Parse(data[1])); } // 创建一个Xcharts图表实例 GameObject chartObj = new GameObject("Chart"); Chart chart = chartObj.AddComponent<Chart>(); // 设置图表的某些属性,包括标题、x轴名称、y轴名称等等 chart.title.text = "Data Chart"; chart.xAxis0.name = "X"; chart.yAxis0.name = "Y"; // 将横坐标和纵坐标数据添加到图表的数据系列中 SeriesData seriesData = new SeriesData(); seriesData.name = "DataSeries"; seriesData.data = new List<float[]>(); for(int i = 0; i < xData.Count; i++) { seriesData.data.Add(new float[] { xData[i], yData[i] }); } chart.series.Add(seriesData); // 将图表添加到Unity场景中 chartObj.transform.SetParent(this.transform); // 设置图表的大小和位置 chartObj.GetComponent<RectTransform>().sizeDelta = new Vector2(600, 400); chartObj.GetComponent<RectTransform>().anchoredPosition = new Vector2(0, 0); } } 以上代码是一个示例,包含了读取文件、解析数据以及在Xcharts中绘制图表的功能。需要注意的是,代码中的文件路径需要根据实际情况进行修改,确保路径正确。 将脚本挂载到Unity场景中的一个对象上,例如一个空对象,然后在Unity编辑器中运行项目即可看到生成的图表。 ### 回答3: 下面是使用Unity读取C:\Kistler\DynoWare\Data\26WCut_1.txt数据,并使用XCharts进行绘图的整体代码: csharp using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.Networking; using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Globalization; using System; using UnityEngine.UI; using XCharts; public class ChartRenderer : MonoBehaviour { [SerializeField] private string filePath = "C:/Kistler/DynoWare/Data/26WCut_1.txt"; [SerializeField] private RectTransform chartContainer; private List<double> xData = new List<double>(); private List<double> yData = new List<double>(); private List<KeyValue> dataPoints = new List<KeyValue>(); private void Start() { LoadData(); CreateChart(); } private void LoadData() { string[] lines = File.ReadAllLines(filePath); for (int i = 0; i < lines.Length; i++) { string[] values = lines[i].Split('\t'); double xValue, yValue; if (double.TryParse(values[0], out xValue) && double.TryParse(values[1], out yValue)) { xData.Add(xValue); yData.Add(yValue); dataPoints.Add(new KeyValue(xValue.ToString(), yValue.ToString())); } } } private void CreateChart() { GameObject chartObject = new GameObject("Chart", typeof(RectTransform)); chartObject.transform.SetParent(chartContainer, false); chartObject.GetComponent<RectTransform>().sizeDelta = new Vector2(600, 400); XCharts.Chart chart = chartObject.AddComponent<XCharts.Chart>(); chart.gameObject.name = "LineChart"; chart.title.show = true; chart.title.text = "Data Chart"; chart.xAxis0.type = XCharts.Axis.AxisType.Value; chart.xAxis0.data.AddRange(xData.ConvertAll<string>(x => x.ToString())); chart.yAxis0.type = XCharts.Axis.AxisType.Value; XCharts.LineSeries lineSeries = new XCharts.LineSeries(); lineSeries.index = 0; lineSeries.name = "Line"; lineSeries.data.AddRange(dataPoints); chart.series.Add(lineSeries); chart.grid.left = 60; chart.grid.right = 60; chart.grid.bottom = 40; chart.grid.top = 40; chart.tooltip.show = true; chart.tooltip.type = Tooltip.Type.Line; chart.tooltip.crossLabel.show = true; chart.tooltip.crossLabel.lineType = Tooltip.LineType.Dashed; chart.tooltip.crossLabel.lineDashType = Tooltip.LineDashType.Solid; chart.tooltip.crossLabel.lineDashWidth = 0.6f; chart.tooltip.crossLabel.lineDashGap = 0.6f; chart.tooltip.crossLabel.textStyle.color = Color.black; chart.tooltip.crossLabel.textStyle.fontSize = 12; chart.tooltip.CrossLabelLineTypeY = Tooltip.LineType.Dashed; chart.tooltip.CrossLabelLineGapY = 0.6f; chart.tooltip.CrossLabelLineWidthY = 0.6f; chart.tooltip.CrossLabelFlagAreaY = 0.6f; chart.tooltip.axisPointer.type = AxisPointer.Type.ShadowCross; chart.tooltip.crossLabel.position = XCharts.Tooltip.CrossLabel.Position.inside; chart.tooltip.crossLabel.lineType = Tooltip.LineType.Dashed; chart.tooltip.CrossLabelFlagGap = 0.6f; chart.RefreshChart(); } } public class KeyValue : XCharts.BaseData { public string key; public string value; public KeyValue(string key, string value) { this.key = key; this.value = value; } public override string GetData(int index) { if (index == 0) return key; else if (index == 1) return value; else return null; } } 注意:在使用该代码之前,请确保已经正确导入XCharts插件,并将文件路径修改为你真实的文件路径。

最新推荐

英语四级整理笔记.doc

performance n. 表演,演出,演奏; perform vt. possible adj. 可能的 动词后加able构成形容词通常表示“可…的” read -&gt; readable accept -&gt; acceptable consider vt. 考虑; considerable adj. (数量或尺寸)相当...

工资透视表.xls

工资透视表.xls

固定资产移转表.xlsx

固定资产移转表.xlsx

软件工程期末复习资料(二仙桥某校定制版)

软件工程期末复习资料(二仙桥某校定制版)

基于 token 的多平台身份认证架构设计.docx

站在更高的维度做架构,来自一线互联网大厂的经验总结,少走弯路少踩坑,值得拥有。

基于51单片机的usb键盘设计与实现(1).doc

基于51单片机的usb键盘设计与实现(1).doc

"海洋环境知识提取与表示:专用导航应用体系结构建模"

对海洋环境知识提取和表示的贡献引用此版本:迪厄多娜·察查。对海洋环境知识提取和表示的贡献:提出了一个专门用于导航应用的体系结构。建模和模拟。西布列塔尼大学-布雷斯特,2014年。法语。NNT:2014BRES0118。电话:02148222HAL ID:电话:02148222https://theses.hal.science/tel-02148222提交日期:2019年HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire论文/西布列塔尼大学由布列塔尼欧洲大学盖章要获得标题西布列塔尼大学博士(博士)专业:计算机科学海洋科学博士学院对海洋环境知识的提取和表示的贡献体系结构的建议专用于应用程序导航。提交人迪厄多内·察察在联合研究单位编制(EA编号3634)海军学院

react中antd组件库里有个 rangepicker 我需要默认显示的当前月1号到最后一号的数据 要求选择不同月的时候 开始时间为一号 结束时间为选定的那个月的最后一号

你可以使用 RangePicker 的 defaultValue 属性来设置默认值。具体来说,你可以使用 moment.js 库来获取当前月份和最后一天的日期,然后将它们设置为 RangePicker 的 defaultValue。当用户选择不同的月份时,你可以在 onChange 回调中获取用户选择的月份,然后使用 moment.js 计算出该月份的第一天和最后一天,更新 RangePicker 的 value 属性。 以下是示例代码: ```jsx import { useState } from 'react'; import { DatePicker } from 'antd';

基于plc的楼宇恒压供水系统学位论文.doc

基于plc的楼宇恒压供水系统学位论文.doc

"用于对齐和识别的3D模型计算机视觉与模式识别"

表示用于对齐和识别的3D模型马蒂厄·奥布里引用此版本:马蒂厄·奥布里表示用于对齐和识别的3D模型计算机视觉与模式识别[cs.CV].巴黎高等师范学校,2015年。英语NNT:2015ENSU0006。电话:01160300v2HAL Id:tel-01160300https://theses.hal.science/tel-01160300v22018年4月11日提交HAL是一个多学科的开放获取档案馆,用于存放和传播科学研究文件,无论它们是否已这些文件可能来自法国或国外的教学和研究机构,或来自公共或私人研究中心。L’archive ouverte pluridisciplinaire博士之路博士之路博士之路在获得等级时,DOCTEURDE L'ÉCOLE NORMALE SUPERIEURE博士学校ED 386:巴黎中心数学科学Discipline ou spécialité:InformatiquePrésentée et soutenue par:马蒂厄·奥布里le8 may 2015滴度表示用于对齐和识别的Unité derechercheThèse dirigée par陪审团成员équipe WILLOW(CNRS/ENS/INRIA UMR 8548)慕尼黑工业大学(TU Munich�