问题标签 [clamp]

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 投票
1 回答
51 浏览

c# - 范围滑块的逻辑: min(min, max) 有效,但 max(min, max) 无效

我有以下代码:

目前,它执行以下操作:

更改最小值永远不会影响最大值:(期望的行为)

在此处输入图像描述

更改最大值确实会影响最小值:(不需要的行为)

在此处输入图像描述

那段非常简单的代码适用于最小滑块,但不适用于最大滑块。

注意,请不要建议使用EditorGUI.MinMaxSlider因为它不显示值:

在此处输入图像描述

0 投票
1 回答
65 浏览

c# - 等距网格中的钳位作用距离

我目前正在开发一个 2D 等距游戏,玩家将能够控制不同的单位,并通过它们进行交互。

我创建了一个名为 UnitType 的 Scriptable Object。多亏了这个系统,我可以定义一个动作范围和一个移动范围,即玩家可以移动到或与之交互的单元格中的最大距离。

问题是我不知道如何通过代码实现这一点。这就是我想要实现的,使用 2 个单元格的动作范围进行演示。 这是目标

和我的一个朋友一起,我们考虑计算这 4 条线的线性方程来检查光线投射是否在它们之内,但它不适用于负 x。 这是目前的系统

最佳做法是什么?

非常感谢您的时间和关注,

0 投票
0 回答
86 浏览

three.js - 使用 ThreeJs 沿贝塞尔曲线拖动对象

使用threesJs。我正在尝试沿贝塞尔曲线(理想情况下为 beziercurve3)移动对象。我的目的是用鼠标移动一点,然后用这个点把这条曲线一分为二,或者开始一条附加到这个点的曲线3。

从我搜索之前我想我应该使用类似clamp_to_curve函数的东西。

我看到 Line3 得到了用贝塞尔closestPointTPoint曲线做同样的事情是个好主意吗?也许getPointgetPointAtfromcurve可以提供帮助,但我不知道如何使用它们。找了一会儿后,我填补了一点点丢失。开始这个的最好方法是什么?

0 投票
0 回答
60 浏览

c - 就地夹紧/剪辑数字的最佳实践

我在这里发现了两个关于 C/C++ 中快速和/或优雅的数字钳位的问题。C 专注于(可能是特定于平台的)优化:

钳制真实(固定/浮点)值的最快方法?

C ++之一也与C有关:

剪辑数字的最有效/优雅的方式?

但是,这些都没有提到它是否与就地操作有关,这对我来说似乎是一个至关重要的信息。这个问题是关于就地操作的。不同之处在于,如果数字在界限内,则无需进行写入操作。

在浏览有关钳位的答案时,大多数人只是建议使用三元变体,无论如何。我想知道为什么会这样?在速度和可读性方面,我都不清楚,特别是对于就地情况。我想了解是否有最佳实践,如果有,我会对理由感兴趣。

在我的示例代码中,有三个变体: 激活的变体 (1) 是我通常实现它的方式。变体 (2) 使用 anelse if并且变体 (3) 使用三元运算符。

根据在某些 i5 CPU 和 gcc 上的测量结果,-O3对于和,(1) 是最快的,(2) 和 (3) 显然更慢,并且彼此相比达到大致相同的速度。对于,所有变体都达到大致相同的速度。TYPEfloatdoubleint

我将这个问题明确标记为 C 而不是 C/C++,因为在后一种情况下——除了重复之外——人们会回答使用std::clamp或 Boost,这不是这个问题的想法。这是关于自己的独立于平台的无汇编实现的最佳实践,无论是在速度还是可读性方面

旁注,即使 C++: usingstd::clamp总是与最慢的变体相提并论。然而,很明显,这样的函数不能针对就地操作的特定情况进行优化,并且内联在这里没有帮助,因为它不会改变使用的指令。

0 投票
0 回答
84 浏览

wordpress - 线夹和 Wordpress 的问题

我的主页 ( https://truegoods.ee/ ) 上有很多产品轮播,它们通过 elementor 与简码一起放在那里。我正在尝试夹住产品标题文本,以便我可以将所有内容正确整齐地对齐。在桌面浏览器上一切正常,但如果我使用 iOS Chrome 或 Safari,则行为不如预期。夹具可能在第一个转盘或前两个转盘上工作。产品轮播的其余部分不受 CSS 影响,即使它们具有相同的类名。相同的代码现在在网站上使用,仅供参考。

我在所有标题中添加了 clampjs 类:

我使用的 CSS:

感谢您的帮助,我真的需要完成这项工作。我什至尝试使用 Clamp JS ( https://github.com/josephschmitt/Clamp.js/ ) 但由于某种原因它不适用于产品标题,但适用于模板文件中编写的一些自定义文本.

卡尔

0 投票
0 回答
81 浏览

css - 宽度钳(MIN, VAL, MAX) 与 max(MIN, min(VAL, MAX)) 不同,其中 VAL = 100% 和 MIN/MAX 是绝对值

语境

我将clamp(MIN, VAL, MAX)解释为:瞄准VAL,除非它超过MAX或低于MIN。

当应用于text 的 WIDTH 时,我的理解是 text 元素将占据容器宽度的 100%,除非它低于 MIN 或超过 MAX。

根据 Mozilla, https://developer.mozilla.org/en-US/docs/Web/CSS/clamp()

clamp(MIN, VAL, MAX) 被解析为 max(MIN, min(VAL, MAX))

在 Firefox 87 中,两者的行为不同。

钳制 VAL 100% 忽略 MINMAX 值,而它的行为与 max(MIN, min(VAL, MAX)) 中的预期相同。


这是一个宽幅示例:

在此处输入图像描述


挠头

我不确定这是否是我应该报告的 FF 87 中的错误,或者是否有一些我不了解夹具如何工作的东西。似乎在 Chrome 89 中工作正常。

0 投票
0 回答
37 浏览

css - 在 flex 项目中使用时,钳制最小值不会将内容撞到下一行

语境

  • 对使用clamp() 来调节
    特定值之间的文本内容的宽度很感兴趣。

  • 在 flex 项目内部时,当达到最小宽度时,它不会将相邻内容向下碰撞到下一行。内容
    重叠。
  • 请参阅下面的 codepen 中的演示。

演示:https ://codepen.io/gabrimo/pen/LYxeMvR


容器和弹性项目

三个测试 - 弹性项目中的段落

当容器宽度变窄时,只有下面的 p3 会将相邻的 flex 项碰撞到下一行。


该规范没有详细说明夹具的工作原理。为什么在 flex 方案中,clamp 会有这种行为?

0 投票
1 回答
50 浏览

c# - 在 Unity 中按 Mapwidth 进行钳位

对于统一的平滑触摸,但我不知道应该在哪里使用 Mathf.Clamp 来限制玩家在地图中的移动。

知道了。

0 投票
1 回答
64 浏览

c# - 旋转车轮时负角无法正常工作

所以我有一个方向盘,它用 A 和 D 按钮转动。我把它夹在一个负角和正角上。我还有一个代码,当角度不为零且不按任何东西时,它会将轮子返回到原来的旋转。我还有一个代码可以在车轮接近夹紧角度时减慢旋转速度。

这是我的轮子返回其原始位置的代码。rotateBack 的值是数量的一半,因为如果同时按下 A 和 D,轮子会卡在负角上。

这是对该错误的(坏)修复:

向右旋转(角度为正)按应有的方式工作。但是在左转时,车轮在接近夹角时忽略了减速,当车轮转动到最大时,车轮晃动并不稳定。它超过了夹紧的角度。我注意到我拥有的电脑越不强大,它的震动和不平衡就越多。

这是我的钳位代码。有负角,但由于某种原因它不起作用。

这是车轮在接近夹紧角度时减速时的代码。它不适用于负角。

我尝试通过将角度更改为负角来解决此问题,负角被读取为正角,但它不能解决问题。

如何修复车轮超过夹紧角度并晃动,以使车轮在左侧超过某个角度时减速?除了这些东西,其他一切都在轮子上工作。

0 投票
3 回答
85 浏览

c - 如何在C中限制(钳位)结构值

我想找到一种有效的方法来限制结构中成员的值。到目前为止,我正在使用“if-esle if”一一检查所有成员的最小值最大值