给定DCEL,其中双胞胎等于下一个边缘,细分可以有多少面?(Given a DCEL where the twin is equal to the next of an edge, how many faces can the subdivision have?)
我试图从“计算几何 - 算法和应用”(Berg等人)一书中解释练习2.7,该书说
给定一个细分的双重连接边列表表示,其中Twin(e)= Next(e)对于每个半边e都有,那么细分最多可以有多少个面?
我认为解决方案是只连接两个顶点的边缘,而双胞胎可能是下一个。 所以,唯一的面孔可能是无限的面孔。 它们可以是由边连接的更多顶点对,但只有它们在每个顶点上都是不相交的。 还有其他可能吗?
I am trying to solve exercise 2.7 from the book "Computational Geometry - Algorithms and Applications" (by Berg et al.), which says
Given a doubly-connected edge list representation of a subdivision where Twin(e) = Next(e) holds for every half-edge e, how many faces can the subdivision have at most?
I think that the solution is an edge that links only two vertices, and the twin may be the next. So, the only face could be the infinity face. They could be more pairs of vertices linked by an edge, but only if they are disjoint on each. Are there other possibilities?
最满意答案
我会说你是对的。
鉴于Next(e)等于所有半边e的Twin(e),则IncidentFace(Next(e))等于IncidentFace(Twin(e))。 因为我们知道IncidentFace(e)总是等于IncidentFace(Next(e)),所以我们可以得出结论,IncidentFace(e)等于IncidentFace(Twin(e))的所有半边。 所以没有边缘位于两个不同面的边界上。 如果没有边界限定两个不同的面,则不能有多个面。
I would say you're correct.
Given that Next(e) equals Twin(e) for all half-edges e, then IncidentFace(Next(e)) equals IncidentFace(Twin(e)). And since we know that IncidentFace(e) always equals IncidentFace(Next(e)) then we can conclude that IncidentFace(e) equals IncidentFace(Twin(e)) for all half-edges. So no edge lies on the boundary of two different faces. And if no edge bounds two different faces, then there cannot be more than one face.
相关问答
更多-
绘制在同一双胞胎上(Plot on the same twin scale)[2022-06-30]
从代码中删除ax3 。 它没有任何意义。 然后调用ax2.plot(c, "y")在ax2.plot(c, "y")上显示c数据,就像您对数据b所做的一样。 fig, ax1 = plt.subplots() ax2 = ax1.twinx() ax3 = ax1.twinx() ax1.plot(a) ax2.plot(b, "r") ax2.plot(c, "y") plt.show() Rem ... -
MySQL“in”表示双胞胎值(MySQL “in” for twin values)[2022-10-08]
我相信这就是你要找的...... WHERE (1,2) IN ((1,2), (3,4)) I believe this is what you are looking for... WHERE (1,2) IN ((1,2), (3,4)) -
看来你根本就不需要insert-select: SQL> select * from test_twin; IDARRET LBL MODELE ---------- ---------- ---------- 1 Car Ford 2 TRUCK Ford 3 Boat Ford SQL> insert into test_twin 2 select yourSequence.nextV ...
-
这是我的drawBox函数,如果你想要你可以修改它以在每个面上绘制不同的颜色。 void DrawBox(GLfloat fWidth,GLfloat fHeight,GLfloat fDepth,GLint wslices,GLint dslices,GLint stacks) { // Calculate number of primitives on each side of box // because we can use different tessalation confi ...
-
选择max_co,co_name from(select max(co_id)max_co,min(co_id)min_co,co_name from co group by co_name having count(*)> 1)其中min_co =(你的旧co id作为输入); I found one solution that is working on 60 columns if I use variables in stead of hardcode in the query. Thanks eve ...
-
按价值需要一个双胞胎集团(Need a twin group by value)[2023-01-16]
你可以这样做: SELECT SOME_ID, COUNT(ANOTHER_ID) AS WITHOUT_FILTER SUM(case when SOME_CONDITION then 1 else 0 end) AS WITH_FILTER from SOME_TABLE GROUP BY SOME_ID You can do this: SELECT SOME_ID, COUNT(ANOTHER_ID) AS WITHOUT_FILTER S ... -
要读取Module Twin,请输入is /twins/${deviceId}/modules/${moduleId}?api-version=${IoTHubApiVersion}的REST API格式。 您可以参考Azure IoT Toolkit扩展中的代码以了解如何读取Module Twin。 For reading Module Twin, the format of REST API for is /twins/${deviceId}/modules/${moduleId}?api-versio ...
-
如何改善寻找双胞胎(How to improve finding Twin Primes)[2022-05-03]
你的算法有点奇怪。 你不测试b本身是否是素数,而是测试b - 2和b + 2一个或两个。 然后,如果其中任何一个肯定是素数,你声明b是孪生素数之一。 mpz_nextprime可能会返回非素数,因为它使用的是概率算法。 @chqrlie指出b - 2已经被mpz_nextprime处理了是mpz_nextprime 。 唯一的边缘情况是,如果第一次调用mpz_nextprime导致的数字只有一个或两个远离a 。 既然你愿意接受b只是一个素数,你应该感到高兴,如果两者都可能是素数。 所以: /* a won' ... -
我会说你是对的。 鉴于Next(e)等于所有半边e的Twin(e),则IncidentFace(Next(e))等于IncidentFace(Twin(e))。 因为我们知道IncidentFace(e)总是等于IncidentFace(Next(e)),所以我们可以得出结论,IncidentFace(e)等于IncidentFace(Twin(e))的所有半边。 所以没有边缘位于两个不同面的边界上。 如果没有边界限定两个不同的面,则不能有多个面。 I would say you're correct. G ...
-
你可以用 SELECT expand($b) let $a = ( SELECT * FROM Regle WHERE titre="1823 - accessoires poids lourds tachygraphe" ), $b = ( SELECT * FROM Regle WHERE out("Pertinent").@rid in $a.out("Pertinent").@rid and out("Secondaire").@rid in $a.out("Secondai ...