问题标签 [boolean-operations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
522 浏览

javascript - 为什么赋值运算符返回非布尔值

我在 chrome 浏览器控制台中测试了这个 javascript 表达式的结果(输出结果为粗体):
a = false
false
b = false
false
a||b
false
a|=b
0
为什么在最后一个表达式中 (a|=b) 不返回 a布尔值?

更新:我可以这样做吗?a=!!(a|=b)

0 投票
2 回答
931 浏览

java - 在类之间打印一个布尔值

我对 Java 比较陌生。我得到了一个任务,我必须输出一个显示其属性的类的对象并打开它。该对象是一个“风扇”,我可以从我创建的 FAB 类中打印它的所有属性,除了打开它。这是我的一些代码

这是我的粉丝课对象

尝试了很多方法,但我得到输出“真”而不是风扇打开

0 投票
1 回答
272 浏览

r - if/ifelse 循环中的布尔运算符

像这样的矩阵

我想使用 if/ifelse 和布尔运算符创建两个基于最后三个的新列。

我尝试了以下但没有成功:

我的问题是我是否可以在 if 子句中使用 &&,但不知何故这不起作用。有人可以给我一个提示为什么或提供更好的选择吗?

在此先感谢,斯蒂芬

0 投票
1 回答
2251 浏览

java - 这 ?布尔禅运算符

我以前从未使用过?运算符,我正在尝试弄清楚它是如何工作的。

我已经阅读了无数页,并决定为自己尝试。

我有以下声明:

因此,据我所知,如果左侧(布尔值)为真,它将设置我的 calendarView.to 年份,如果不是(getSelection 不等于 måned),它将调用该方法showPopup();

但是当我在eclipse中输入这个时,我得到一个语法错误。

有人可以解释我做错了什么吗?

0 投票
1 回答
63 浏览

javascript - 布尔反转的Javascript方法

以下适用于任何布尔变量,但我在 javascript 中编写了一个小函数,它反转给定复选框中的检查,变得无聊,想知道我能压缩多少。

开始于:

然后搬到

接着

我想不出一个合乎逻辑的一元方法,比如

但我发现 -- 有效,虽然 ++ 没有(绝对值?)

我也不确定 js(或任何语言,就此而言)是否支持对等式左侧变量的一些隐式引用,如:

通常有 1000 种方法可以做同样的事情。还有其他巧妙的方法吗?出于任何原因(或从语言到语言最兼容)是否有“最佳”方法?

0 投票
7 回答
619 浏览

php - php 类型比较背后的基本理念

所以php网站上有这个页面,它显示了比较不同值的结果:

http://php.net/manual/en/types.comparisons.php

这是一个有用的参考,但我宁愿不必每次都访问此页面以确保我正在做正确的类型比较。所以我的问题是

PHP类型比较的逻辑背后是否有某种潜在的哲学/推理?

例如,我可以看到松散的比较:

  • 1、-1、“1”和“-1”可以视为TRUE,0和“0”可以视为FALSE;
  • 用 yield TRUE 比较数字的字符串值和数字本身;

但从那时起尝试建立模式就变得有点毛茸茸了。

0 投票
2 回答
4519 浏览

three.js - Three.js 多边形三角剖分在伪重复点中失败

three.js中有一个函数triangulateShape()。现在,我遇到了使用 Javascript Clipper 简化的多边形三角剖分失败。Clipper 中的简化是使用联合来完成的。维基百科文章将联合定义为找到包含两个简单多边形之一内的区域的一个或多个简单多边形。同一篇文章说,在简单多边形中,“每个顶点恰好有两条边相交”,并且还确定了一个弱简单的多边形,其中边可以相交,但没有提到边不相交但一些或多个顶点相交的边缘情况. 所以有点不清楚这种情况是简单的多边形还是弱简单的多边形。

Clipper 选择了一种宽​​松的方法:简单的多边形可以有这些类似接触(或伪重复)的顶点。这种 Clipper 风格的许可方法导致生成的简单多边形并不像 three.js:s 所triangulateShape()期望的那样简单。

下图显示了这种边缘情况的两个示例。左边的多边形是一个“简单”多边形,红点是一个“重复”。右边也是一个“简单”多边形,但红点是一个“重复”。

在此处输入图像描述

triangulateShape()在这些情况下会失败,因为它会跟踪数组中的点allPointsMap并从那里检查该点是否重复。要删除这些重复项,我有两个选择:


OPTION 1.

更改 Javascript Clipper 内部代码以使用额外参数处理这些,例如。breakPolygonByWeakDuplicates对于SimplifyPolygon()SimplifyPolygons()。正如 Angus Johnson在他的帖子中所描述的那样,变化将类似于:

在 IntersectEdges() 方法中,将以下内容从 ...

至 ...

更改非常简单,但原来的 Angus Johnson Clipper 和 Javascript Clipper 将不再兼容。当然,如果原来的 Clipper 会做出改变,Javascript Clipper 也会跟着做。


OPTION 2.

更改 three.jstriangulateShape()源代码以接受伪重复。


我的问题是:应该在哪一端完成这种额外的简化程序?第一端是创建端(Clipper),另一端是三角剖分端(three.js)。

我不知道各种 3D 库中的多边形三角剖分例程,所以无法想象三角剖分例程一般有多么宽松。如果有人知道这个领域,他/她可以给出更复杂的答案。

另外我不知道其他布尔库如何处理联合或简化这种伪重复。Clipper 允许使用简单多边形的方式肯定是有原因的(例如,与其他布尔库的兼容性),但这肯定会导致在 three.js 中对多边形进行三角剖分时出现问题。

参考这里是three.js的三角代码:


更新:我制作了一个 SVG http://jsbin.com/ugimab/1,其中是一个多边形示例,该多边形具有点 (150,150),它是弱重复或伪重复。以下显示了表示此多边形的各种方法:


更新:如果有人设法找到一种解决方案来对具有这种弱重复点的多边形进行三角剖分,那么如果您发布您的发现将会非常有帮助。


更新:测试选项 1,但没有成功:http: //jsbin.com/owivew/1。多边形仍然是一个整体,尽管它应该被分成两部分。也许安格斯约翰逊(快船的创造者)可以提供更好的解决方案。


更新:这是一个更复杂的“简单”多边形(在 Clipper 中简化后)。所有似乎在一起的点都是完全相同的。要将其划分为真正简单的多边形,需要将其分成几部分。我的眼睛说这里有 4 个底部多边形和一个(更大的)带有孔的上部多边形,因此总体简化这将产生 5 个外部多边形和 1 个孔。或者,一个具有 5 个孔的外部多边形。或者可能是其他一些外部和孔的组合。它可以通过许多不同的方式进行简化。

小提琴位于http://jsbin.com/ugimab/3(也是多边形的 JSON 版本)。

在此处输入图像描述

以下是从 0 到 25 编号的点:

在此处输入图像描述

图像中的顶点 2,11,14,25 是相同的坐标,所以它是一个“伪多顶点”。Vertex3 不是重复的,但它触及边缘 6-7。


更新:

基于移动重复点的建议方法似乎有效。如果将复制点替换为复制坐标一定距离上的两个点,产生“断笔尖”效果,三角剖分就可以了,因为生成的多边形是真正的简单多边形,这是三角剖分的要求。轮廓和孔之间以及孔和孔之间也不允许重复。下图显示了这种方法的效果。此处的距离为 10px 以显示效果,但实际上例如。0.001 足以使多边形变得简单。Three.js r58 中的默认三角测量器也无法按预期工作,但如果将其更改为 Poly2tri,则一切正常。这个过程在这个相当长的错误报告中描述:https://github.com/mrdoob/three.js/issues/3386

在此处输入图像描述

0 投票
3 回答
310 浏览

delphi - Is it faster to constantly assign a value or compare

I am scanning an SQLite database looking for all matches and using

or should I be using

Is it faster to just assign "True" to OneFound no matter how many times it is assigned or should I do the comparison and only change OneFuond the first time?

I know a better way would be to use FTS3, but for now I have to scan the database and the question is more on the approach to setting OneFound as many times as a match is encountered or using the compare-approach and setting it just once.

Thanks

0 投票
2 回答
90 浏览

boolean - 编程问题布尔逻辑

我有一个问题,我需要根据一些布尔值创建一些按钮。

如果button1 = true我应该创建button1,如果button2 = true我应该创建button2,如果button3 = true我应该创建button3。

所以可以有8种组合:

我的问题是如何从 8 个中找到正确的组合。

0 投票
1 回答
560 浏览

boolean - 布尔逻辑和门延迟

假设 Sum 或 Carry 函数有 2 个门延迟,估计具有以下字长的加法器的纹波通过进位加法的时间:-

在我的笔记中,我写道:“延迟是字宽乘以每个位级延迟(2 个门延迟)”。所以:

查看波纹进位加法器维基百科页面: http ://en.wikipedia.org/wiki/Ripple_carry_adder#Ripple-carry_adder

这里使用的公式不同,谁能解释我的笔记和维基百科文章之间的差异。两者哪一个是正确的?

提前谢谢你。