小编gma*_*man的帖子

调整HTML5画布大小以适合窗口

如何自动缩放HTML5 <canvas>元素以适合页面?

例如,我可以<div>通过将heightwidth属性设置为100%来进行缩放,但是<canvas>不会缩放,是吗?

html javascript html5-canvas

383
推荐指数
9
解决办法
49万
查看次数

如何检查我是否在Python上运行Windows?

我找到了平台模块,但它说它返回'Windows'并且它在我的机器上返回'Microsoft'.我注意到在stackoverflow的另一个线程中它有时返回'Vista'.

所以,问题是,如何实施?

if isWindows():
  ...
Run Code Online (Sandbox Code Playgroud)

以前向兼容的方式?如果我必须检查"Vista"之类的东西,那么当下一个版本的Windows出现时它就会中断.


注意:声称这是一个重复的问题的答案实际上没有回答问题isWindows.他们回答"什么平台"的问题.由于存在许多种类的窗口,它们都没有全面地描述如何得到答案isWindows.

python platform platform-specific

192
推荐指数
5
解决办法
13万
查看次数

如何使Windows与Linux一样快速地编译C++?

我知道这不是一个编程问题,而是相关的.

我在一个相当大的跨平台项目上工作.在Windows上我使用VC++ 2008.在Linux上我使用gcc.项目中有大约40k个文件.在编译和链接同一个项目时,Windows比Linux慢10到40倍.我该如何解决这个问题?

单个更改增量构建在Linux上为20秒,在Windows上为> 3分钟.为什么?我甚至可以在Linux中安装'gold'链接器,并将时间缩短到7秒.

同样,git在Linux上比Windows快10到40倍.

在git的情况下,git可能不是以最佳方式使用Windows而是使用VC++?你认为微软希望让自己的开发人员尽可能高效,而更快的编译将会有很长的路要走.也许他们试图鼓励开发人员加入C#?

作为简单的测试,找到一个包含大量子文件夹的文件夹并做一个简单的操作

dir /s > c:\list.txt
Run Code Online (Sandbox Code Playgroud)

在Windows上.执行两次并在第二次运行时间,以便从缓存中运行.将文件复制到Linux并执行等效的2次运行并在第二次运行时运行.

ls -R > /tmp/list.txt
Run Code Online (Sandbox Code Playgroud)

我有2个工作站具有完全相同的规格.HP Z600s配备12gig内存,8个内核,3.0ghz.在包含~400k文件的文件夹上,Windows需要40秒,Linux需要<1秒.

我可以设置一个注册表设置来加速Windows吗?是什么赋予了?


一些与编译时间相关的略微相关的链接,不一定是i/o.

linux windows performance compilation

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

弃掉Git Stash Pop

我做了一个git stash pop,现在我有很多冲突.我之前提交了所有最近的代码git stash pop,所以有没有办法回到最后一次提交并摆脱所有冲突并编写git stash pop注入的代码?

git

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

使用对象的字段作为通用的Dictionary键

如果我想使用对象作为a的键Dictionary,我需要覆盖哪些方法以使它们以特定方式进行比较?

假设我有一个具有属性的类:

class Foo {
    public string Name { get; set; }
    public int FooID { get; set; }

    // elided
} 
Run Code Online (Sandbox Code Playgroud)

我想创建一个:

Dictionary<Foo, List<Stuff>>
Run Code Online (Sandbox Code Playgroud)

我希望Foo具有相同对象的对象FooID被视为同一组.我需要在Foo课程中覆盖哪些方法?

总结一下:我想将Stuff对象分类为按Foo对象分组的列表.Stuff对象将有一个FooID将它们链接到他们的类别.

.net generics dictionary

115
推荐指数
3
解决办法
9万
查看次数

在OSX El Capitan上升级setuptools

我正在尝试升级setuptools.实际上,我正在尝试升级ansible,但它正在尝试升级setuptools并失败.试图自己做也失败了.即使尝试卸载它也会失败

$ sudo -H pip install --upgrade setuptools
Collecting setuptools
  Using cached setuptools-18.4-py2.py3-none-any.whl
Installing collected packages: setuptools
  Found existing installation: setuptools 1.1.6
    Uninstalling setuptools-1.1.6:
Exception:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-7.1.2-py2.7.egg/pip/basecommand.py", line 211, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-7.1.2-py2.7.egg/pip/commands/install.py", line 311, in run
    root=options.root_path,
  File "/Library/Python/2.7/site-packages/pip-7.1.2-py2.7.egg/pip/req/req_set.py", line 640, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip-7.1.2-py2.7.egg/pip/req/req_install.py", line 716, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip-7.1.2-py2.7.egg/pip/req/req_uninstall.py", line 125, in remove
    renames(path, new_path)
  File "/Library/Python/2.7/site-packages/pip-7.1.2-py2.7.egg/pip/utils/__init__.py", line 315, in renames
    shutil.move(old, new)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line …
Run Code Online (Sandbox Code Playgroud)

macos setuptools python-2.7

79
推荐指数
1
解决办法
3万
查看次数

如何在THREE.JS上创建自定义网格?

我问过这个并得到了答案:

var geom = new THREE.Geometry(); 
var v1 = new THREE.Vector3(0,0,0);
var v2 = new THREE.Vector3(0,500,0);
var v3 = new THREE.Vector3(0,500,500);

geom.vertices.push(new THREE.Vertex(v1));
geom.vertices.push(new THREE.Vertex(v2));
geom.vertices.push(new THREE.Vertex(v3));

var object = new THREE.Mesh( geom, new THREE.MeshNormalMaterial() );
scene.addObject(object);
Run Code Online (Sandbox Code Playgroud)

我希望这可行,但事实并非如此.

javascript three.js

48
推荐指数
3
解决办法
6万
查看次数

在画布标签上绘制箭头

我想使用canvas标签javascript绘制一个箭头.我使用二次函数制作了它,但是我在计算箭头的旋转角度时遇到了问题......

有人知道这个吗?

谢谢

javascript drawing html5-canvas

47
推荐指数
7
解决办法
6万
查看次数

在画布上绘制1px粗线可创建2px粗线

在这个jsfiddle中,有一行lineWidth为1.

http://jsfiddle.net/mailrox/9bMPD/350/

例如:

ctx.lineWidth = 1;
Run Code Online (Sandbox Code Playgroud)

然而,当它在画布上绘制时,线是2px厚,如何创建1px粗线.

我可以绘制一个矩形(高度为1px),但我希望这条线也适用于对角线.那么你如何让这条线高1px?

谢谢!

html javascript line html5-canvas

45
推荐指数
4
解决办法
3万
查看次数

Three.js投影仪和Ray对象

我一直在尝试使用Projector和Ray类来进行一些碰撞检测演示.我已经开始尝试使用鼠标选择对象或拖动它们.我已经查看了使用这些对象的示例,但是它们似乎没有任何评论可以解释投影仪和Ray正在做什么的一些方法.我有几个问题,我希望有人能回答这些问题.

究竟发生了什么,Projector.projectVector()和Projector.unprojectVector()有什么区别?我注意到,在使用投影仪和光线对象的所有示例中,似乎在创建光线之前调用了unproject方法.你什么时候使用projectVector?

我在此演示中使用以下代码在使用鼠标拖动时旋转立方体.当我用mouse3D和相机取消投影然后创建Ray时,有人能用简单的术语解释究竟发生了什么.光线是否依赖于对unprojectVector()的调用

/** Event fired when the mouse button is pressed down */
function onDocumentMouseDown(event) {
    event.preventDefault();
    mouseDown = true;
    mouse3D.x = mouse2D.x = mouseDown2D.x = (event.clientX / window.innerWidth) * 2 - 1;
    mouse3D.y = mouse2D.y = mouseDown2D.y = -(event.clientY / window.innerHeight) * 2 + 1;
    mouse3D.z = 0.5;

    /** Project from camera through the mouse and create a ray */
    projector.unprojectVector(mouse3D, camera);
    var ray = new THREE.Ray(camera.position, mouse3D.subSelf(camera.position).normalize());
    var intersects = ray.intersectObject(crateMesh); // …
Run Code Online (Sandbox Code Playgroud)

javascript 3d three.js

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