我创建了一个库,用于在Python中创建和使用b样条曲面,使用并行scipy.interpolate.RectBivariateSpline()实例来保存节点向量、(X、Y、Z)控制点网格,以及u和v( (t,c,k)元组中执行曲面计算的度数)。我还编写了一个STEP解析器来读取从CAD包导出的表面数据;我从文件中的b_spline_surface_with_knots实体获取(t,c,k)值,并将它们填充到我自己的对象中。表面库对我来说运行得很好,但是步骤解析器很麻烦,每次我使用它时都会以各种方式失败。因此,我尝试使用“真正的”步骤解析器,如下所示:
from OCC.STEPControl
我想确定给定的三角形是否与四面体相交。我不想计算解多边形本身(如果它存在的话)。是否有任何库/包/发布的实用算法可以直接解决这个问题(与我下面的尝试不同)?
我认为,作为最后的手段,我将不得不使用标准多边形-多边形交集算法实现间接解决这个问题。
我在这个问题上的尝试:
我想把它分解成多边形-多边形交点的问题。因此,对于四面体和给定的三角形T1的每个三角形面(例如T2 ),我想做以下工作:
计算每个三角形对应的平面之间的相交(一条线),比如L1。
对于每个三角形:
1. For each edge of the triangle say `L2`, compute point o
我必须在旋转立方体上添加一个聚光灯,所以这是我的代码:
"use strict";
var canvas;
var gl;
var numVertices = 36;
var texSize = 256;
var numChecks = 8;
var program;
var texture1, texture2;
var t1, t2;
var normalsArray = [];
var dirLightPosition = vec4(1.0, 1.0, 1.0, 0.0 );
var dirLightAmbient = vec4(0.2, 0.2, 0.
我的顶点位置V∈ℝⁿ应该是一个大的、密集的矩阵B∈ℝⁿˣᵏ与向量z∈ℝᵏ相乘的结果:
V = B z
在我的例子中,k≈300,所以据我所知,这太大了,无法将相关行Bᵢ作为顶点属性存储到ith顶点。
目前,我正在计算顶点着色器中的乘法,方法是将z设置为uniform,将B填充到正方形纹理中,然后使用texelFetch和for-循环。类似于:
uniform int n; // number of vertices
uniform int k; // size of z
uniform int s; // size of texture square where B is packed
uni