小编Max*_*y-B的帖子

球体表面上的(经度,纬度)点的凸壳

标准凸包算法不适用于(经度,纬度)点,因为标准算法假设您需要一组笛卡尔点的船体.纬度 - 经度点不是笛卡尔坐标,因为经度在反子午线(+/- 180度)处"环绕".即,经度179以东两度是-179.

因此,如果您的一组点恰好跨越反子午线,您将计算出错误地在世界各地伸展的虚假船体.

我可以使用标准凸包算法来解决这个问题的任何建议,或指向正确的"地球"船体算法?

现在我想起来,有更多有趣的案例需要考虑而不是跨越反梅迪安.考虑一个包围地球的点"带" - 它的凸包将没有东/西边界.或者甚至更进一步,{(0,0),(0,90),(0,-90),(90,0),( - 90,0),(180,0)}的凸包是什么? - 它似乎包含整个地球表面,所以它的周边有哪些点?

geometry geospatial latitude-longitude convex-hull computational-geometry

19
推荐指数
1
解决办法
5655
查看次数

无法使用Vim的syn-include和syn-region来嵌入语法高亮显示

我试图让Vim语法高亮显示任何以扩展名结尾的文件,.Rtex方法如下:

  • 所有顶级文本都突出显示为TeX
  • 例外:所包含的任何文本\begin{python}...\end{python}都突出显示为Python

我能够单独实现这些标准中的每一个,但无法同时实现这两个标准.我认为以某种方式TeX突出显示覆盖了我突出显示的Python区域,或者阻止它们生效,我不知道如何弄清楚.

第一步:编辑.vimrc以提供扩展名为.Rtexfiletype的文件rtex:

  au BufRead *.Rtex setf rtex
Run Code Online (Sandbox Code Playgroud)

第二步:创造~/.vim/syntax/rtex.vim.这个文件的内容将决定如何突出显示.Rtex文件.

第三步:通过如下所示启用一般的顶级TeX突出显示rtex.vim:

runtime! syntax/tex.vim
Run Code Online (Sandbox Code Playgroud)

如果我现在打开一个.Rtex文件,整个文件将突出显示为TeX,包括其中的任何文本\begin{python}...\end{python},如预期的那样.

第四步:按照Vim中的说明:help syn-include包含python高亮显示,并将其应用于由\begin{python}和分隔的所有区域\end{python}.我的rtex.vim文件现在看起来像这样:

runtime! syntax/tex.vim
unlet! b:current_syntax
syntax include @Python syntax/python.vim
syntax region pythonCode start="\\begin{python}" end="\\end{python}" contains=@Python
Run Code Online (Sandbox Code Playgroud)

unlet! b:current_syntax命令旨在强制python.vim执行语法文件,即使现有语法(TeX)已经处于活动状态.

问题:如果我现在打开一个.Rtex文件,整个文件仍然只作为TeX突出显示.该\begin{python}...\end{python}地区似乎没有任何影响.

实验:如果我删除或注释掉的runtime!命令,我办 …

python vim latex syntax-highlighting tex

12
推荐指数
1
解决办法
2137
查看次数

如何创建使用其他JSP标记的自定义JSP标记?

我想编写一个自定义JSP标记,其输出包括其他JSP标记,这些标记本身也应该被动态评估.但显然我的TagSupport子类所写的所有内容pageContext.getOut()都直接发送给客户端而没有任何进一步的评估.

我觉得这应该很简单,因为它似乎是人们想要使用自定义标签的第一件事:封装和重用其他自定义标签,避免代码重复.

如何使以下代码执行它显然想做的事情?:

public class MyTag extends TagSupport {
    public int doStartTag() throws JspException {
        try {
            pageContext.getOut().println(
              "The output from this tag includes other tags " +
              "like <mypackage:myOtherTag>this one</mypackage:myOtherTag> " +
              "which should themselves be evaluated and rendered."
            )
        } catch (IOException e) {
            throw new JspException(e);
        }
        return SKIP_BODY;
    }   
}
Run Code Online (Sandbox Code Playgroud)

编辑:我的特定用例的一些背景,如果它有帮助.我有一个自定义标签<user>,它以对我的应用程序有用的方式动态呈现用户名(鼠标悬停在名字,姓氏,电话号码等).我现在正在编写另一个<comment>用于显示用户注释的标记,我想使用我现有的<user>标记在<comment>标记的输出中呈现用户名.

jsp jsp-tags

11
推荐指数
2
解决办法
7819
查看次数

如何在 bash 脚本中正确捕获 SIGQUIT?

我可以编写可以很好地捕获的 shell 脚本SIGINT,但我似乎无法捕获SIGQUIT.

#!/bin/bash

function die {
    echo "Dying on signal $1"
    exit 0
}

trap 'die "SIGINT"' SIGINT
trap 'die "SIGQUIT"' SIGQUIT

while true; do
    echo "sleeping..."
    sleep 5
done
Run Code Online (Sandbox Code Playgroud)

执行此脚本并按下CTRL-C具有所需的效果,但是按下CTRL-\(据我所知,应该触发)除了在终端中SIGQUIT打印之外没有任何作用。^\为什么?

我有两个运行理论。首先,SIGINT和 的语义SIGQUIT不同,SIGQUIT仅发送到子进程sleep,而同时SIGINT发送到子进程和父 bash 进程。如果是这种情况,它在哪里记录?

我的第二个理论是 bash 不仅默认忽略(即有一个无操作处理程序)SIGQUIT(如手册页所示),而且根本不允许它被捕获。该理论与第一个理论重叠,因为父级和子级都可能出现这种情况SIGQUIT,但父级 ( bash) 无法捕获它。如果是这种情况,有什么方法可以捕获SIGQUITbash 脚本吗?...也许shopt我可以设置一些?

编辑:这是在 Ubuntu 10.10 上的 …

unix bash signals exit bash-trap

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

R:在没有for循环的情况下将"短格式"数据转换为"长格式"数据?

假设我有一个像这样的R数据帧:

  Subject Session  Property.A Property.B Property.C
1     100       1 -1.22527548 -0.9193751 -1.7501693
2     100      10  2.30627980  1.8940830 -0.8443976
3     100       2  2.33243332 -0.5860868 -4.2074489
4     100       3  0.38130810 -0.7336206  4.8016230
5     100       4  1.44685875  0.5066249  2.0138624
6     100       5  0.08907721 -0.3715202  1.4983700
Run Code Online (Sandbox Code Playgroud)

我听说过这种称为"短格式"或"宽格式"的数据框架.现在假设我想让它看起来像这样,我听说它叫做"长形式":

  Subject Session  Property    Value
1     100       1         A   -1.2252754
2     100       1         B   -0.9193751
3     100       1         C   -1.7501693
4     100       2         A    2.3324333
5     100       2         B   -0.5860868
6     100       2         C   -4.2074489
Run Code Online (Sandbox Code Playgroud)

也就是说,我有N列,我想减少到只有两个"名称/值"列,数据框中的任何其他列根据需要扩展重复值.

显然我可以用一堆for循环执行这个转换,但这看起来真的很难看,如果/当我添加更多属性列时,维护是很痛苦的.

有没有办法在R中用几行代码做到这一点?我还没有发现一些神奇的功能组合?

r dataframe

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