小编Pha*_*rae的帖子

在d3中,如何从SVG线获取插值线数据?

我显示与D3的线图与大致下面的代码(给定规模的功能x,y并且浮子阵列data):

 var line = d3.svg.line()
         .interpolate("basis")
         .x(function (d, i) { return x(i); })
         .y(function (d) { return y(d); });
 d3.select('.line').attr('d', line(data));
Run Code Online (Sandbox Code Playgroud)

现在我想知道给定水平像素位置处线垂直高度.该data阵列具有比像素更小的数据点,并且所显示的线被内插,因此仅从data阵列推断给定像素处的线的高度并不是直截了当的.

任何提示?

javascript graphics svg d3.js

16
推荐指数
2
解决办法
9460
查看次数

是否有一个Python可重用组件,就像Blender节点编辑器一样?

Blender有一个功能强大,易于使用,灵活的节点编辑器:

Blender 2.6节点编辑器

是否有一个Python库可以让我轻松创建这样的可视化开发环境?在Blender中,节点编辑器使用着色器,图像,颜色等,我想自己定义节点,套接字和预览小部件的类型,就像构建"可视DSL"一样.

编辑:我不想在Blender中创建自定义节点,但在我自己的项目中使用组件LIKE节点编辑器.我删除了Blender标签以避免混淆.

python visual-programming reusability

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

具有类型约束的GADT的Functor实例

今天我想研究是否有可能以这种方式构造数据类型,它不存储其类型签名类型的数据,而是它的另一种表示形式.所以,这是我对GADT的尝试,它具有类型的类型构造函数a,但是类型的数据构造函数ByteString.

{-# LANGUAGE GADTs #-}
import Data.ByteString.Char8
import Data.Serialize

data Serialized a where
    MkSerialized :: (Serialize a) => ByteString -> Serialized a
Run Code Online (Sandbox Code Playgroud)

现在我可以decode'通过以下方式定义一个函数:

decode' :: (Serialize a) => Serialized a -> a
decode' (MkSerialized bs) = let Right r = (decode bs) in r
Run Code Online (Sandbox Code Playgroud)

它有效:

let s = MkSerialized (encode "test") :: Serialized String
print $ decode' s     -- prints "test"
Run Code Online (Sandbox Code Playgroud)

我现在的问题是,我想Serialized成为一个实例Functor.

instance Functor Serialized where
    fmap f (MkSerialized bs) …
Run Code Online (Sandbox Code Playgroud)

haskell functor type-constraints

9
推荐指数
1
解决办法
1156
查看次数

Parsec解析器:在某些条件下不评估自定义失败

我刚刚开始学习使用Parsec解析字符串,我遇到了以下问题,我无法解决这个问题:

以下代码包含三个解析器运行,其中两个显然会失败.奇怪的是,我的自定义失败消息只会在第二次运行时发生,而不是在第三次运行时发生.

import Text.Parsec
import Text.Parsec.String

ps :: Parser String
ps = (string "123") <|> (string "456") <|> fail "my-failure"

main = do
     putStrLn $ "A: " ++ show (parse ps "" "123")
     putStrLn $ "\nB: " ++ show (parse ps "" "789")
     putStrLn $ "\nC: " ++ show (parse ps "" "45x")
Run Code Online (Sandbox Code Playgroud)

输出:

A: Right "123"

B: Left (line 1, column 1):
unexpected "7"
expecting "123" or "456"
my-failure

C: Left (line 1, column 1):
unexpected "x"
expecting "456" …
Run Code Online (Sandbox Code Playgroud)

haskell parsec

0
推荐指数
1
解决办法
988
查看次数