小编sup*_*per的帖子

检测用户是否在圈内点击

如何检测用户何时点击红色气泡?

它不应该像一个方形场.鼠标必须在圆圈内:

IMG

这是代码:

<canvas id="canvas" width="1000" height="500"></canvas>
<script>
var canvas = document.getElementById("canvas")
var ctx = canvas.getContext("2d")

var w = canvas.width
var h = canvas.height

var bubble = {
  x: w / 2,
  y: h / 2,
  r: 30,
}

window.onmousedown = function(e) {
    x = e.pageX - canvas.getBoundingClientRect().left
    y = e.pageY - canvas.getBoundingClientRect().top

    if (MOUSE IS INSIDE BUBBLE) {
        alert("HELLO!")
    }
}

ctx.beginPath()
ctx.fillStyle = "red"
ctx.arc(bubble.x, bubble.y, bubble.r, 0, Math.PI*2, false)
ctx.fill()
ctx.closePath()
</script>
Run Code Online (Sandbox Code Playgroud)

html javascript events canvas click

34
推荐指数
3
解决办法
2万
查看次数

JavaScript - 分离轴定理 - 碰撞工作,但没有响应?

所以,我正在尝试对我的SAT,Circle - Poly,Poly - Poly碰撞应用响应.我将这篇文章的代码移植到JavaScript:

http://rocketmandevelopment.com/blog/separation-of-axis-theorem-for-collision-detection/

现在,检测适用于所有类型,但响应失败并且以疯狂的速度和错误的角度,它不依赖于物体的质量(区域^ 2而不是质量)并且未应用角速度

JSFiddle(重力不适用于模拟,使用箭头键移动),JS的第一部分是Vectors,然后是Physics,然后是Main.

这是我对形状的定义:(必须为"JSFiddle"链接添加一些代码:P)

var Circle = function(body, c, r, cor, cof) {
    this.body = body // Static or dynamic
    this.c = c; // Center
    this.r = r; // Radius
    this.m = getCMass(r); // Mass = Area
    this.v = new Vector(); // Velocity
    this.cor = cor; // Coefficient of restitution
    this.cof = cof; // Coefficient of friction
    this.a = 0; // Angle
    this.av = 0; // Angular velocity
    this.type …
Run Code Online (Sandbox Code Playgroud)

javascript physics vector collision

13
推荐指数
1
解决办法
949
查看次数

限制数组大小

假设我有一个包含数据元素的数组,在此示例中为数字,如下所示:

var a = [432, 238, 122, 883, 983];
Run Code Online (Sandbox Code Playgroud)

我想限制数组,这样每次我向数组添加一个元素时,它总是保持7或更小的长度,并删除最旧的元素.

我目前的aproach看起来像这样:

function add(x) {
    a.unshift(x);
    a = a.slice(0, 7);
}
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但是没有一种更优雅的方式来做它,比如一条线或什么的?

编辑:通过"更优雅",我的意思是,我不需要添加功能,只是很容易内联我需要它的代码,而不是输入例如三次,只有一行也会使代码"更清晰"

javascript arrays

13
推荐指数
2
解决办法
1万
查看次数

requestAnimationFrame在函数的开头或结尾?

如果我有一个使用requestAnimationFrame的循环,如下所示:

function render() {
    // Rendering code

    requestAnimationFrame(render);
}
Run Code Online (Sandbox Code Playgroud)

如果我把requestAnimationFrame函数放在函数的开头,会有什么区别,如下所示:

function render() {
    requestAnimationFrame(render);

    // Rendering code
}
Run Code Online (Sandbox Code Playgroud)

我没有注意到任何差异,但我已经看到两种实现,其中一种更好,或者它们是否相同?

编辑:我想到的一件事是,如果我把它放在开头,并且渲染代码需要很长时间才能运行,比如说10毫秒,最终不会把它放到帧速率下降10毫秒?

javascript requestanimationframe

12
推荐指数
3
解决办法
2741
查看次数

HTML - 在用户类型时保留占位符

我有这样的输入:

<input value="My text" placeholder="Placeholder">
Run Code Online (Sandbox Code Playgroud)

当我在输入中输入内容时,占位符文本将消失,这是非常明显的.

现在,我想要做的是我希望占位符文本在用户输入时保留,以便您可以将占位符文本看作原始文本后面的背景文本:

占位符

编辑:我也希望能够使用JavaScript更改背景文本.

html javascript css

10
推荐指数
2
解决办法
2万
查看次数

HTML5 Canvas - 与球物理故障的碰撞

我正在使用牛顿方程来制作这个程序中的球,我正在解决它们彼此碰撞时"分开",但有时候它们会相互碰撞并导致很多麻烦.

.

这是我的代码:

<center>
<canvas id="canvas" style="border: 2px solid black; cursor: crosshair;" width="1000"                 height="500"></canvas>
</center>

<script>
var canvas = document.getElementById("canvas")
var ctx = canvas.getContext("2d")

var w = canvas.width
var h = canvas.height

var ball = []

var gravity = 0.3
var force = 0.2

var mouse = {
d: false,
x1: 0,
y1: 0,
x2: 0,
y2: 0,
}




window.onmousedown = function(e) {
mouse.d = true
mouse.x1 = mouse.x2 = e.pageX - canvas.getBoundingClientRect().left
mouse.y1 = mouse.y2 = e.pageY - canvas.getBoundingClientRect().top …
Run Code Online (Sandbox Code Playgroud)

javascript html5 physics canvas collision

7
推荐指数
1
解决办法
2544
查看次数

检查数组中的所有元素是否都是字符串

有没有一种好方法可以检查数组中的所有索引是否都是字符串?

check(["asd", 123]); // false
check(["asd", "dsa", "qwe"]); // true
Run Code Online (Sandbox Code Playgroud)

javascript arrays

7
推荐指数
1
解决办法
5841
查看次数

JavaScript中的N体重力模拟

所以,我正在尝试用JavaScript创建一个N-Body Gravity模拟:

http://jsfiddle.net/4M94x/

var Circle = function(c, r, cor, cof) { // Fix CoR & CoF // Had to add code for JSFiddle link :P
    this.c = c
    this.r = r
    this.m = r * r * Math.PI
    this.v = new Vector()
    this.cor = cor
    this.cof = cof
}
Run Code Online (Sandbox Code Playgroud)

问题在于,当你产生(点击)并将2个球(意外地重命名为"粒子")彼此相邻时,它们开始产生速度并且更快更快地推动彼此.我如何解决这个问题,顺便说一句,我的重力实现是否正确?

javascript physics vector

5
推荐指数
1
解决办法
2344
查看次数

最有效的方法只能解决四次多项式的实根

我尝试使用这种方法实现一个方法,可以解决给定a,b,c,d,e的四次多项式:https://math.stackexchange.com/a/786/127747

它适用于某些解决方案,如果存在1或2个实根,但问题在于,如果它们将负数作为输入,有时所涉及的方形或立方根可能会导致NaN值出现在中间变量中,例如 Math.sqrt(-9),那就是混乱最后的答案,在方法的最后使所有的根NaN.

有没有快速的分析方法只能得到Java中四次多项式的所有真正的根,给定变量/系数a,b,c,d和e,它们不涉及某些复杂的库等?

编辑:(任何可理解的语言都有效,但最好是Java,如果不是这样的话,我会反正创建一个端口,编辑答案来附加它)

编辑2:这是我当前的代码,其中s是等式中的p,而q只是稍微优化它的变量,因此相同的计算不会进行两次:

public static double[] solveRealQuarticRoots(double a, double b, double c, double d, double e) {
    double s1 = 2 * c * c * c - 9 * b * c * d + 27 * (a * d * d + b * b * e) - 72 * a * c * e,
        q1 = c * c - 3 * b * d + 12 * a * …
Run Code Online (Sandbox Code Playgroud)

java math

5
推荐指数
1
解决办法
515
查看次数

PHP - 检查字符串是否包含另一个字符串中的任何字符

如何检查字符串是否包含PHP中另一个字符串中的任何字符?

$a = "asd";
$b = "ds";
if (if_first_string_contains_any_of_the_chars_in_second_string($a, $b)) {
    echo "Yep!";
}
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下,它应该回应,因为ASD包含D和S.

我想在没有正则表达式的情况下这样做.

php string

4
推荐指数
1
解决办法
711
查看次数