小编wxs*_*wxs的帖子

固定行程宽度在SVG中

我希望能够将SVG元素上的笔触宽度设置为"像素感知",无论当前应用的缩放转换如何,都始终为1px宽.我知道这可能是不可能的,因为SVG的整个要点是与像素无关.

背景如下:

我有一个SVG元素,其viewBox和preserveAspectRatio属性设置.它看起来像这样

<svg version="1.1" baseProfile="full"
    viewBox="-100 -100 200 200" preserveAspectRatio="xMidYMid meet"
    xmlns="http://www.w3.org/2000/svg" >
</svg>
Run Code Online (Sandbox Code Playgroud)

这意味着当我缩放该元素时,其中的实际形状会相应缩放(到目前为止一直很好).

如您所见,我已经设置了viewBox,以便原点位于中心.我想在该元素中绘制一个x轴和一个y轴,我这样做:

<line x1="-1000" x2="1000" y1="0" y2="0" />
Run Code Online (Sandbox Code Playgroud)

再次,这很好.但理想情况下,此轴总是只有1px宽.当我缩放父svg元素时,我对轴越来越不感兴趣.

我搞砸了吗?

svg visualization

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

在Swift中使方法自我弱化

我有一个Swift类需要存储自己的方法表.不幸的是,这导致了一个引用循环,因为它的表保留self了对它存储的方法的引用.

示例泄漏代码如下:

typealias Callback = ()->()

class CycleInducingClass : NSObject {
    var myCallbacks = [Callback]()  

    override init() {
        super.init()
        myCallbacks.append(myInternalFunction)
    }

    func myInternalFunction() {
        NSLog("lolol: %d", self.myCallbacks.count)
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止我找到的唯一解决方案是改为:

myCallbacks.append({[unowned self] in self.myInternalFunction()})
Run Code Online (Sandbox Code Playgroud)

这很丑陋,容易出错.有更好的想法吗?是否有一些技巧使函数引用本身变弱?即制作myCallbacks类型myCallbacks : [WeakCallback]()或类似的数组?据我所知,我甚至无法weaken在上面丑陋的闭包装上构建一个方便函数作为语法糖.

automatic-ref-counting swift

25
推荐指数
1
解决办法
3418
查看次数

变量作为bash脚本中的命令

我正在编写一个非常简单的bash脚本,它对目标目录进行加密,对其输出进行加密,然后将生成的文件拆分为多个较小的文件,因为备份介质不支持大文件.

我对bash脚本没有太多经验.我相信我在正确引用我的变量以允许参数中的空格时遇到问题.该脚本如下:

#! /bin/bash

# This script tars the given directory, encrypts it, and transfers
# it to the given directory (likely a USB key).

if [ $# -ne 2 ]
then
    echo "Usage: `basename $0` DIRECTORY BACKUP_DIRECTORY"
    exit 1
fi

DIRECTORY=$1
BACKUP_DIRECTORY=$2
BACKUP_FILE="$BACKUP_DIRECTORY/`date +%Y-%m-%dT%H-%M-%S.backup`"

TAR_CMD="tar cv $DIRECTORY"
SPLIT_CMD="split -b 1024m - \"$BACKUP_FILE\""

ENCRYPT_CMD='openssl des3 -salt'

echo "$TAR_CMD | $ENCRYPT_CMD | $SPLIT_CMD"

$TAR_CMD | $ENCRYPT_CMD | $SPLIT_CMD 

say "Done backing up"
Run Code Online (Sandbox Code Playgroud)

运行此命令失败:

拆分:"foo/2009-04-27T14-32-04.backup"aa:没有这样的文件或目录

我可以通过删除$BACKUP_FILE我设置的位置周围的引号来解决它$SPLIT_CMD.但是,如果我的备份目录名称中有空格,则它不起作用.此外,如果我将"echo"命令的输出直接复制并粘贴到终端,它可以正常工作.显然,我不明白Bash是如何逃避事情的.

unix bash shell

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

哪些游戏具有相当简单的启发式来评估位置?

我正在教孩子编程,并且正在介绍一些基本的人工智能概念.首先,我们将实施一个搜索整个游戏树的井字游戏,因此可以完美地播放.一旦我们完成了,我想将相同的概念应用于具有太多位置的游戏来评估每一个,因此我们需要实现一个启发式来评估中间位置.

我能想到的最好的东西是Dots和Boxes.它的优点是我可以设置任意大的棋盘大小以阻止他搜索整个树,我可以制作一个非常基本的评分函数,即我的盒子数量减去对手盒子的数量.不幸的是,这意味着在游戏开始的大部分时间里,每个位置都会被评分为0,因为在玩家真正开始制作盒子之前需要花费很多时间.

有没有人对游戏有更好的想法?(或点和框的更好的评分功能)?

language-agnostic artificial-intelligence heuristics

13
推荐指数
3
解决办法
3810
查看次数

如何明确地广播张量以匹配张量流中的另一个形状?

我有三个张量,A, B and C在tensorflow,A并且B都是形状(m, n, r),C是二元张量的形状(m, n, 1).

我想根据值选择A或B中的元素C.tf.select然而,明显的工具是没有广播语义,所以我需要首先明确地广播C到与A和B相同的形状.

这将是我第一次尝试如何做到这一点,但它不喜欢我将张量(tf.shape(A)[2])混合到形状列表中.

import tensorflow as tf
A = tf.random_normal([20, 100, 10])
B = tf.random_normal([20, 100, 10])
C = tf.random_normal([20, 100, 1])
C = tf.greater_equal(C, tf.zeros_like(C))

C = tf.tile(C, [1,1,tf.shape(A)[2]])
D = tf.select(C, A, B)
Run Code Online (Sandbox Code Playgroud)

这里的正确方法是什么?

tensorflow

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

处理由sympy整合返回的分段方程式

同情我有一个积分返回一个Piecewise对象,例如

In [2]: from sympy.abc import x,y,z

In [3]: test = exp(-x**2/z**2)

In [4]: itest = integrate(test,(x,0,oo))

In [5]: itest
Out[5]: 
?   ___                                                   
? ?? ? ?z       ?                 ?      1          ??   ?
? ???????   for ?periodic_argument???????????????, ??? ? ?
?    2          ?                 ?          2      ??   2
?               ?                 ?polar_lift (z)   ??    
?                                                         
??                                                        
??                                                        
??    2                                                   
??  -x                                                    
??  ???                                                   
??    2                                                   
??   z                                                    
?? ?    dx                    otherwise                   
??                                                        
?0                                                        
?    
Run Code Online (Sandbox Code Playgroud)

我想提取这个分段方程的第一个分支,换句话说,我希望能够做一些itest.parts(0)简单的提取sqrt(pi)*z/2.我似乎无法找到任何方法来做到这一点,但也许我在文档中使用了错误的搜索词.有任何想法吗?

编辑

稍微探讨一下,我已经设法发现,如果我这样做,itest.args[0][0]我可以提取这个表达式.然而,这看起来有点像黑客.有更好的方法吗?

python symbolic-math sympy computer-algebra-systems symbolic-computation

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

在SQLAlchemy中按关系计数过滤

我在Pylons项目中使用SQLAlchemy Python ORM.我有一个"Project"类,它与另一个类"Entry"有一对多的关系.我想在SQLAlchemy中进行查询,该查询为我提供了与其关联的一个或多个条目的所有项目.目前我正在做:

[project for project in Session.query(Project) if len(project.entries)>0]
Run Code Online (Sandbox Code Playgroud)

我知道这不是理想的,但我无法弄清楚如何做一个我需要的过滤器(例如Session.query(Project).filter(Project.entries.exists())).

有任何想法吗?

python sql database pylons sqlalchemy

10
推荐指数
1
解决办法
2867
查看次数

Pylons Routes中的尾随斜杠

在最新版本的Routes(1.10)中,使用斜杠的最佳方法是什么?我目前正在使用明显的非DRY:

map.connect('/logs/', controller='logs', action='logs')
map.connect('/logs', controller='logs', action='logs')
Run Code Online (Sandbox Code Playgroud)

我认为转向最小化可以解决问题,但我认为它在新版本的Routes中被禁用是有原因的.不幸的是,文档似乎没有赶上Routes开发,所以我找不到任何好的资源去.有任何想法吗?

python pylons routes

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

我在C项目中为iOS项目使用什么类型的文件名字符串?

我有一个我在iOS Objective-C程序中使用的C库.我的C库的一个功能是读入并处理文件中的数据.目前该功能看起来像这样

internalType* parseFile(const char* filename);
Run Code Online (Sandbox Code Playgroud)

在iOS上传递一个char*作为这个安全的文件名,还是我用unicode拍摄自己的脚?这里有首选做法吗?

c string objective-c

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

如何为 SQLite FTS 查询转义字符串

我正在尝试使用不受信任的用户输入执行 SQLite FTS 查询。我不想让用户访问查询语法,也就是说他们将无法执行像foo OR bar AND cats. 如果他们尝试使用该字符串进行查询,我想将其解释为更像foo \OR bar \AND cats.

SQLite 似乎没有为此内置任何内容,因此我可能最终会构建自己的转义函数,但这似乎很危险且容易出错。有没有首选的方法来做到这一点?

sqlite full-text-search fts4

6
推荐指数
2
解决办法
1754
查看次数