小编Zac*_*man的帖子

计算2D矢量的叉积

来自维基百科:

交叉乘积是对三维欧几里德空间中的两个向量的二元运算,其导致另一个向量垂直于包含两个输入向量的平面.

鉴于定义仅定义在三个(或七个,一个和零)维度中,如何计算两个二维向量的叉积?

我见过两个实现.一个返回一个新的向量(但只接受一个向量),另一个返回一个标量(但是是两个向量之间的计算).

实现1(返回标量):

float CrossProduct(const Vector2D & v1, const Vector2D & v2) const
{
    return (v1.X*v2.Y) - (v1.Y*v2.X);
}
Run Code Online (Sandbox Code Playgroud)

实现2(返回向量):

Vector2D CrossProduct(const Vector2D & v) const
{
    return Vector2D(v.Y, -v.X);
}
Run Code Online (Sandbox Code Playgroud)

为什么不同的实施?我将使用标量实现?我将使用矢量实现?

我问的原因是因为我自己编写了一个Vector2D类,并且不知道使用哪种方法.

language-agnostic math 2d vector

71
推荐指数
5
解决办法
12万
查看次数

JSTL集和列表 - 检查集中是否存在项

我在会话中有一个Java Set,在会话中也有一个变量.我需要能够判断集合中是否存在该变量.

我想使用Java对Lists和Sets的contains(Object)方法来测试该对象是否存在于集合中.

这可以在JSTL中做到吗?如果是这样,怎么样?:)

谢谢,亚历克斯

jstl list set

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

JSTL,Bean和方法调用

我正在开发一个JSP,我需要调用来自Bean的对象的方法.该页面的先前版本不使用JSTL,它可以正常工作.我的新版本有这样的设置:

<jsp:useBean id="pageBean" scope="request" type="com.epicentric.page.website.PageBean" />
<c:set var="pageDividers" value="<%= pageBean.getPageDividers() %>" />
<c:set var="numColumns" value="${pageDividers.size()}" />
Run Code Online (Sandbox Code Playgroud)

变量pageDividers是一个List对象.

我遇到了这个问题:当我要求pageDivider的大小时,会抛出异常.我知道这是一个简单的JTSL错误 - 我做错了什么?

错误消息是:

未指定默认命名空间时,函数大小必须与前缀一起使用

如何正确访问或调用我的pageDividers对象的方法?

java jsp vignette jstl exception

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

std :: for_each,使用引用参数调用成员函数

我有一个指针容器,我想迭代,调用一个成员函数,其参数是一个参考.如何使用STL执行此操作?

我目前的解决方案是使用boost :: bind和boost :: ref作为参数.

// Given:
// void Renderable::render(Graphics& g)
//
// There is a reference, g, in scope with the call to std::for_each
//
std::for_each(
  sprites.begin(),
  sprites.end(),
  boost::bind(&Renderable::render, boost::ref(g), _1)
);
Run Code Online (Sandbox Code Playgroud)

一个相关的问题(我从中派生出我当前的解决方案)是boost :: bind,其函数的参数是引用.这特别询问如何使用boost进行此操作.我问如何在没有提升的情况下完成.

编辑:有一种方法可以做同样的事情,而不使用任何boost.通过使用std::bind和朋友相同的代码可以在C++ 11兼容的编译器中编写和编译,如下所示:

std::for_each(
  sprites.begin(),
  sprites.end(),
  std::bind(&Renderable::render, std::placeholders::_1, std::ref(g))
);
Run Code Online (Sandbox Code Playgroud)

c++ stl pass-by-reference

8
推荐指数
1
解决办法
7354
查看次数

在传递给xsl:for-each之前对节点集进行排序

我有一种情况,循环遍历排序的节点集并在每个节点上应用模板:

<div id="contractscontainer">
  <xsl:for-each select="document">
    <xsl:sort select="content[@name='ClientName']/text()" />
    <xsl:apply-templates select="." mode="client-contract" />
  </xsl:for-each>
</div>
Run Code Online (Sandbox Code Playgroud)

我想对节点集中的"第一个"5个节点做一些特殊的事情,并渲染它们的嵌套元素.问题是它们需要的顺序与它们的排序顺序相同(因为它们在循环中).

我曾计划通过使用两个xsl:for-each元素来执行此操作,每个元素都具有从集合中选择的正确节点.但是,我不能这样做,因为我选择"第一个" 之前需要对它们进行排序.

例:

<div id="contractscontainer">
  <div class="first-five">
    <xsl:for-each select="document[position() < 6]">
      <xsl:sort select="content[@name='ClientName']/text()" />
      <xsl:apply-templates select="." mode="client-contract" />
    </xsl:for-each>
  </div>
  <div class="rest-of-them">
    <xsl:for-each select="document[position() > 5]">
      <xsl:sort select="content[@name='ClientName']/text()" />
      <xsl:apply-templates select="." mode="client-contract" />
    </xsl:for-each>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我认为这不会起作用,因为我排序之前按位置选择节点,但我不能xsl:sort在外面使用xsl:for-each.

我接近这个错误吗?

编辑:我当前的解决方案是对它们进行排序并将排序的集合存储在另一个变量中:

<xsl:variable name="sorted-docs">
  <xsl:for-each select="document">
    <xsl:sort select="content[@name='ClientName']/text()" />
    <xsl:copy-of select="." />
  </xsl:for-each>
</xsl:variable> …
Run Code Online (Sandbox Code Playgroud)

sorting xslt

8
推荐指数
1
解决办法
6391
查看次数

使用.reset()释放具有唯一所有权的boost :: shared_ptr

我将一个object(TTF_Font)存储在shared_ptr从第三方API提供给我的对象中.我不能在对象上使用new或delete,因此shared_ptr也提供了一个"freeing"仿函数.

// Functor
struct CloseFont
{
    void operator()(TTF_Font* font) const
    {
        if(font != NULL) {
            TTF_CloseFont(font);
        }
    }
};

boost::shared_ptr<TTF_Font> screenFont;

screenFont = boost::shared_ptr<TTF_Font>( TTF_OpenFont("slkscr.ttf", 8), CloseFont() );
Run Code Online (Sandbox Code Playgroud)

如果,稍后,我需要明确释放此对象,这样做是正确的:

screenFont.reset();
Run Code Online (Sandbox Code Playgroud)

然后让screenFont(实际shared_ptr物体)自然地被摧毁?

c++ boost memory-management sdl-image

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

将多行字符串作为参数传递给Windows中的脚本

我有一个简单的python脚本,如下所示:

import sys

lines = sys.argv[1]

for line in lines.splitlines():
    print line
Run Code Online (Sandbox Code Playgroud)

我想从命令行(或.bat文件)调用它,但第一个参数可能(并且可能会)是一个包含多行的字符串.怎么做到这一点?

当然,这有效:

import sys

lines = """This is a string
It has multiple lines
there are three total"""

for line in lines.splitlines():
    print line
Run Code Online (Sandbox Code Playgroud)

但我需要能够逐行处理一个参数.

编辑:这可能是一个Windows命令行问题而不是Python问题.

编辑2:感谢所有好的建议.它看起来不太可能.我不能使用另一个shell,因为我实际上试图从另一个程序调用脚本,该程序似乎在幕后使用Windows命令行.

python windows string dos batch-file

6
推荐指数
1
解决办法
8988
查看次数

从WebBrowser控件中删除边框

我有一个WebBrowser控件坐在一个Form上,它周围有一个恼人的2px嵌入式边框.它导致我的内容被右侧和底部的4像素剪辑,我无法弄清楚如何摆脱它.控件本身没有任何BorderStyle属性 - 如何删除边框?

查看屏幕截图中的红色区域:

让它停下来!http://img229.imageshack.us/img229/8342/badbadwebbrowser.gif

我希望WebBrowser看起来像蓝色区域 - 也就是说,填充Form并与Form的边缘齐平.

.net c# webbrowser-control

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

在多个页面上有一个菜单?

所以我有一个网站,我正在使用位于屏幕右上角的基本菜单.它的链接如下:

| Home | Blog | Results | Pictures | Our Location |
Run Code Online (Sandbox Code Playgroud)

不时形成我需要向菜单添加新链接或更改其中一个链接所指向的位置.这意味着在菜单存在的每个页面上我必须手动更改链接.当然有一些方法可以在每个页面上放置一个主菜单.

还是我在做梦?

html menu

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

jQuery - 检查字符串是否包含数值

如何通过jquery检查字符串是否包含任何数值?

我搜索了很多例子,但我只能检查一个数字,而不是STRING中的数字.我想找到类似的东西$(this).attr('id').contains("number");

(p/s:我的DOM id将是Large_a(没有数值),Large_a_1(带数值)Large_a_2,等等)

我应该使用什么方法?

javascript jquery

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