我想要一个事件,当相机触摸网格时,它会移动到其他地方,例如门户。
这是我的相机:
function MaCamera(scene, positionCx, positionCy, positionCz)
{
var freeCamera = new BABYLON.FreeCamera("FreeCamera", new BABYLON.Vector3(positionCx, positionCy, positionCz), scene);
freeCamera.rotation = new BABYLON.Vector3(0.5, 0, 0);
freeCamera.attachControl(canvas, true);
freeCamera.checkCollisions = true;
scene.activeCamera = freeCamera;
}
Run Code Online (Sandbox Code Playgroud)
这是我的网格:
var drawMirror = BABYLON.Mesh.CreateBox("rectangle", 1, scene);
drawMirror.scaling = new BABYLON.Vector3(12, 0.1, 20);
drawMirror.rotation.x = Math.PI / 2;
drawMirror.position = new BABYLON.Vector3(positionMx, positionMy, positionMz);
drawMirror.checkCollisions = true;
Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个非常简单的网格。我有一个盒子:
box_size = 50;
lb = 10.;
Point(1) = {-box_size/2, -box_size/2, -box_size/2, lb};
Point(2) = {box_size/2, -box_size/2, -box_size/2, lb};
Point(3) = {box_size/2, box_size/2, -box_size/2, lb};
Point(4) = {-box_size/2, box_size/2, -box_size/2, lb};
Line(1) = {1, 2};
Line(2) = {2, 3};
Line(3) = {3, 4};
Line(4) = {4, 1};
Line Loop(5) = {1, 2, 3, 4};
Plane Surface(6) = {5};
Extrude {0, 0, box_size} {
Surface{6};
}
Run Code Online (Sandbox Code Playgroud)
这工作得很好,gmsh 很乐意对其进行 (3D) 网格划分。问题是我要确保盒子内的某些点是节点。所以我的问题是,我如何确保这些点,比如这些
lc = 10;
Point(5) = {7.150548, 1.000000, -6.990684, lc};
Point(6) = …
Run Code Online (Sandbox Code Playgroud) 我需要使用 WebGL 解决以下问题:
想象一下相机前面有一个网格。网格实际上并未着色,但它的“轮廓”作为一个整体用于将背景图像显示为某种蒙版或模板(如果您愿意的话)。因此,例如,您将得到一个具有白色背景的输出图像和一个填充有纹理/图像的轮廓形状,作为该位置的背景。
(我想要使用的网格显然比球体更复杂)
达到这种效果的最佳方法是什么?我考虑了两种投影映射,即从相机角度将背景纹理投影到网格上。或者也许模板缓冲区是可行的方法?据我了解,目前它的支持度并不高。也许还有一种更简单的方法来解决我错过的这个问题?
我正在考虑使用 gmsh 来替代 Ansys 网格划分器(避免 Workbench/APDL 的网格文件类型不兼容)。
我想实现一种算法来在立方体中引入球体(稍后它将是任何类型的体积)。它们不应相互接触,因此我需要检查我要介绍的卷是否与我之前介绍的任何卷相交。
理想情况下,最好有一个检查边界的命令。我看到有一些命令,例如Boundary
,PointsOf
和 ,CombinedBoundary
它似乎检索边界上的实体。但我不确定它们是如何工作的(文档没有解释没有边界时会发生什么)。我尝试在 GUI 中使用这些命令,但找不到它们。
其他选项(但速度较慢)是尝试交集命令(不删除任何原始卷)并检查交集后有多少卷。如果比以前多了,就有交集。但我对这个解决方案不太满意。无论如何,我需要能够计算前后的卷数,我在 gmsh 文档中没有看到类似的内容。
所以,我的问题是:是否有可能在实际执行交叉之前检测 gmsh 中的交叉?是否可以计算卷数(我想是的)?
非常感谢。亲切的问候,
使用该命令Mesh.clone();
您可以克隆网格。搜索显示几何形状和材料被保留。但是,我想以不同的方式控制两个网格的不透明度。因此我认为我也必须克隆这些材料。
有没有办法复制包含材质的网格,以便我可以与原始网格分开控制新网格的不透明度?
这是一个功能,使用了几天前我问过的问题答案的建议.让我们在Mathematica中创建一个Graphics3D对象.我从这里使用这个3D几何数据.
cd = Import[NotebookDirectory[] <> "withwake.obj"];
vertices = cd[[1, 2, 1]];
polygons = Flatten[cd[[1, 2, 2, 1]] /. Polygon -> List, 2];
Graphics3D[GraphicsComplex[vertices, Polygon[polygons]]]
Run Code Online (Sandbox Code Playgroud)
对于每个多边形,我们创建一个指向其顶点的数字列表,然后是指向每个边连接到的多边形的数字.重要的是要注意表面正常; 定义面板的节点顺序应为逆时针.通过右手规则,如果手指弯曲以跟随编号,拇指将显示应指向"向外"几何的法线向量.
如果Graphics3D
对象中的所有多边形都是三角形,则此函数会创建此类列表.
EdgeSorting[vertices_, polygons_] :=
Block[{triangleEdges, singleEdges, edgesNeighbors, relations, n, n1,
n2, trires, triangleNeigbours, TriangleMaker, polygonArea, tring},
(*Split every triangle in 3 edges,with nodes in each edge sorted*)
triangleEdges = (Sort /@ Subsets[#, {2}]) & /@ polygons;
(*Generate a list of edges*)
singleEdges = Union[Flatten[triangleEdges, 1]];
(*Define a function …
Run Code Online (Sandbox Code Playgroud) 正如标题所说,我正在尝试将网格函数的2变量切片(例如.jpg)保存为子图.我想使用.m文件执行此操作,因为我有许多图表要生成.我已经弄清楚如何在他们自己的数字上绘制视图,但我不能让他们正确地绘制成图中的子图.说明我的意思:
以下是各个图的输出:
3D网格:3D MATLAB网格图
XY视图:XY MATLAB网格视图
YZ视图:YZ MATLAB网格视图
XZ视图:XZ MATLAB网格视图
这是我的绘图代码(不工作):
%Ambiguity Surface
fid = figure(fnum);
axes1 = axes('Parent',fid);
view(axes1,[-62.5 28]);
grid(axes1,'on');
hold(axes1,'all');
msh = mesh(taux,fdy,z,'Parent',axes1);
xlabel ('Delay - seconds');
ylabel ('Doppler - Hz');
zlabel ('Ambiguity function (Normalized Magnitude-Squared)');
fname = strcat(name,' (Ambiguity Function z(\tau;F_d))');
title(fname);
cb = colorbar('peer',axes1);
set(get(cb,'ylabel'),'String','Magnitude-Squared (dB)');
hold off;
printFig(fid,fnum,sname)
fnum = fnum + 1;
%Ambiguity Slices
fid = figure(fnum);
hold all;
subplot(2,1,1);
axes1 = axes();
grid(axes1,'on');
view(axes1,[90 0]);
msh = mesh(taux,fdy,z); …
Run Code Online (Sandbox Code Playgroud) 我想知道Unity的网格压缩是否可以提高低端硬件的游戏性能。
网格压缩是否会降低游戏的要求,还是仅对减少文件大小和游戏占用的存储空间有用?
3D三角形网格形状由顶点和三角形面表示.例如,shape
在matlab中shape.X, shape.Y, shape.Z(the vertices) and shape.TRIV(the triangle faces)
可以看作3D三角形网格形状.
我的问题是如何使用特定的色彩图在MATLAB中可视化这样的形状.
(例如,该颜色映射可被定义为一个距离向量的length(shape.X)
其元素是所有顶点的到单个顶点的欧几里德距离M
,在这种情况下,涉及到较小的距离的冷却器的颜色,和较热的颜色相关的较大的距离. )
我正在 Unity 中编写游戏,但在使用 Text Mesh Pro 输入框中的 On End Edit 事件时遇到问题。我需要在运行时定义事件(在代码中)。我真的不知道如何解决这个问题。
这是编辑器中事件的图片,我希望它连接到 PlayerConnectionManager 类中的 PressedButton 方法:
感谢您的任何帮助!
我导入了一个由多个网格组成的FBX模型.不幸的是,我无法将每个网格显示在正确的位置.对于每个网格,我将网格的几何变换与网格的局部变换相乘,然后将其传递给着色器.我该如何解决这个问题?
gl_Position = modelViewProjectionMatrix *TransformationMatrix*vertexPositionsOfMesh;
Run Code Online (Sandbox Code Playgroud)
GLKMatrix4 LcLTransformation = createTransformationMatrix(
Mesh->LclRotation,
Mesh->LclScaling,
Mesh->LclTranslation);
GLKMatrix4 GeoTransformation = createTransformationMatrix(
Mesh->GeometricRotation,
Mesh->GeometricScaling,
Mesh->GeometricTranslation);
TransformationMatrix=GLKMatrix4Transpose(GLKMatrix4Multiply(LcLTransformation,
GeoTransformation));
Run Code Online (Sandbox Code Playgroud)
GLKMatrix4 createTransformationMatrix(float* _rotation, float* _scaling, float* _translation)
{
GLKMatrix4 Rx = GLKMatrix4Make(1, 0, 0, 0,
0, cos(_rotation[0]), -sin(_rotation[0]), 0,
0, sin(_rotation[0]), cos(_rotation[0]), 0,
0, 0, 0, 1
);
GLKMatrix4 Ry = GLKMatrix4Make(cos(_rotation[1]), 0, sin(_rotation[1]), 0,
0, 1, 0, 0,
-sin(_rotation[1]), 0, cos(_rotation[1]), 0,
0, 0, 0, 1
);
GLKMatrix4 Rz = GLKMatrix4Make(cos(_rotation[2]), -sin(_rotation[2]), 0, 0,
sin(_rotation[2]), …
Run Code Online (Sandbox Code Playgroud) 我在这里使用这个函数创建点。
local GR = (math.sqrt(5) + 1) / 2
local GA = (2 - GR) * (2 * math.pi)
local function fibonacciSpiralSphere(num_points)
local vectors = {}
for i = 1, num_points do
local lat = math.asin(-1 + 2 * i / (num_points + 1))
local lon = GA * i
local x = math.cos(lon) * math.cos(lat)
local y = math.sin(lon) * math.cos(lat)
local z = math.sin(lat)
table.insert(vectors, Vector3.new(x, y, z))
end
return vectors
end
Run Code Online (Sandbox Code Playgroud)
我只是不知道如何用它们制作球体网格。