我已经搜索过并且没有找到任何关于如何使用JavaScript在画布上绘制螺旋的真正信息.
我认为有可能用bezier曲线来做,如果这不起作用lineTo()
,但这似乎要困难得多.
另外,为了做到这一点,我猜我将不得不使用三角法和极坐标图表,并且我已经有一段时间了.如果是这种情况,你可以指出我在数学上正确的方向.
我正在搞乱创建一个自定义舍入函数,可以绕到我想要的任何间隔.例如(如果我正在使用度数它会舍入到最接近的15度)无论如何我决定看看它与Math.round相比有多快,并且发现它更慢.我在FF8上使用firebug
function R1(a,b){var c=a%b;return a-c+(c/b+1.5>>1)*b}
function R2(a){return Math.round(a)}
var i,e=1e5;
console.time('1');
i=e;
while(i--){
R1(3.5,1);
}
console.timeEnd('1');
console.time('2');
i=e;
while(i--){
R2(3.5);
}
console.timeEnd('2');
Run Code Online (Sandbox Code Playgroud)
我的结果是
1: 464ms
2: 611ms
Run Code Online (Sandbox Code Playgroud)
我以不同的方式运行了几次,但R1总是更快出来.也许这只是一个FF的东西,但如果是这样的话是什么导致它.
编辑: 我从函数调用中取出每一个,看看会发生什么
var i,e=1e5,c;
console.time('1');
i=e;
while(i--){
c=3.5%1;
3.5-c+(c/1+1.5>>1)*1;
}
console.timeEnd('1');
console.time('2');
i=e;
while(i--){
Math.round(3.5);
}
console.timeEnd('2');
Run Code Online (Sandbox Code Playgroud)
和我得到的时间
1: 654ms
2: 349ms
Run Code Online (Sandbox Code Playgroud) 我正在使用Javascript制作游戏,并使用html5 canvas元素作为Flash的替代品.我的问题是:是否有任何代码可以用来隐藏鼠标光标/指针,因为它在画布中传递?非常感谢帮助!
这是我想做的一个例子
function test(r){
var arr = ['d','e','f'];
r.push(arr);
/*
More Code
*/
return r;
}
var result = test(['a','b','c']);
alert(result.length);//I want this to alert 6
Run Code Online (Sandbox Code Playgroud)
我需要做的是传入一个数组并将其他数组附加到它的末尾然后返回数组.因为通过参考我不能使用array.concat(array2);
.有没有办法做到这一点,而不使用像for循环这样的东西逐个添加元素.我尝试了类似的东西r.push(arr.join());
但是也没用.此外,我想在数组中有对象的选项,所以真的r.push(arr.join());
不能很好地工作.
我正在研究一个自动完成脚本,正在考虑使用trie.我的问题是我希望返回匹配的所有内容.因此,例如我输入字母,r
我希望r
返回所有条目.然后所有条目都以re
等等开头.这对于trie是可行的,它将如何工作.此外,如果有更好的方式,我愿意接受建议.我问的原因是它似乎很复杂,并且需要进行大量处理才能将所有节点都归结为r
分支.
是的,我可能正在重新发明轮子,但我想了解它是如何工作的.
为什么你不能用这样的东西创建格仔背景?
background-color:#ccc;
background-image:linear-gradient(90deg, transparent 50%, #aaa 50%),
linear-gradient(90deg, #aaa 50%, #ccc 50%);
background-size:50px 50px,50px 50px;
background-position:0 0, 0 25px;
Run Code Online (Sandbox Code Playgroud)
我们的想法是在条纹方块的底部叠加交替的颜色.它不起作用,但它似乎应该.
我有以下HTML
<ul id="header">
<li class="dropdown"><span>Our Locations</span>
<ul>
<li><a href="">London</a></li>
<li><a href="">New York</a></li>
</ul>
</li>
<li class="dropdown"><span>Language Selector</span>
<ul>
<li><a href="">English</a></li>
<li><a href="">German</a></li>
<li><a href="">French</a></li>
<li><a href="">Chinese</a></li>
<li><a href="">Mandarin</a></li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我正在尝试获得一个看起来如下的菜单
背景的奇怪形状的困难以及文本将随着网站的翻译而改变的事实.
目前我有以下javascript
(function ($) {
$.fn.dropDownMenu = function () {
$.each(this, function () {
var li = $(this);
li.hover(function () {
$(this).addClass("hover");
$('ul:first', this).css('visibility', 'visible');
}, function () {
$(this).removeClass("hover");
$('ul:first', this).css('visibility', 'hidden');
});
});
}
$(function () {
$(".dropdown").dropDownMenu();
});
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
我可以看到可能正常工作的唯一方法是绝对定位内部ul(由li.dropdown包含),这将给我一个框,使用左/右/顶部边框对父li进行z索引以获得连接两个框然后可能添加一个额外的div来覆盖任何重叠的父李.我想知道是否有更好的方法?
我试图创建一个简单的圆形顶部到矩形.我能够使用该bezierCurveTo
方法创建上限,但我不得不使用控制点的y值来获得正确的曲线高度.如果我有宽度并且我知道我希望曲线通过的高度是他们找到控制点的y值的公式?我现在的功能是
c.moveTo(130,55);
c.bezierCurveTo(130,-18,0,-18,0,55);
Run Code Online (Sandbox Code Playgroud)
-18是我必须设置y值以使曲线大致通过y = 0.
可以将多个变量初始化为相同的值a=b=5
.此外,可以添加到变量a+=2
.但有没有办法同时为两者添加相同的值?像这样的东西a+=b+=2
没有a
得到2
和的值增加b
.因此,在这种情况下,两个a
并b
最终会为7.
另外,我不是在寻找能够重复增加价值的答案a+=2,b+=2
.
我意识到这不是最好的编码实践,我只是想知道是否有可能.在不使用第三个变量的情况下交换两个变量值有点类似