小编hel*_*ker的帖子

通知WPF中计算的数据绑定属性的更改

作为练习,我决定在WPF中创建一个自行车齿轮计算器.我创建了两个私有字段,其中包含触发器OnPropertyChanged(),但我有一个数据绑定属性ratio,其行为为"只读",因为它是动态计算的.当我运行程序时,文本框显示,初始值正确显示,属性更改处理程序中的"工作"单词显示,但ratioTextBlock不更新.

我怀疑这是由于属性被"哄骗"的方式,我想知道是否绝对有必要为每个人添加一个私有字段,我想知道是否应该有任何DependencyProperty ...但实际上我已经到达了知识限制,并不能使这个琐碎的程序工作.


这是我的模特:

class SingleGearsetModel : INotifyPropertyChanged
{
    public SingleGearsetModel()
    {
        crank = 44;
        cog = 16;
    }

    private int _crank;
    private int _cog;

    public int crank { 
        get{return _crank;}
        set{
            _crank = value;
            OnPropertyChanged("crank");
        }
    }

    public int cog {
        get{return _cog;}
        set{
            _cog = value;
            OnPropertyChanged("cog");
        } 
    }

    public double ratio
    {
        get {
            return (double)crank / (double)cog;
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string arg)
    {
        PropertyChangedEventHandler handler …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf notifications

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

一种用javascript创建随机噪声背景图像(png)的方法?

YouTube的新布局添加了一个我非常喜欢的背景随机噪音,在其他网站上几乎看到了相同的效果,所以我计划在我的网页原型中使用相同的技术,或者至少有这个"技巧"我的工具箱供将来使用.

图像是这样的(取自http://g.raphaeljs.com/barchart.html):

在此输入图像描述

现在Youtube通过在源代码中嵌入图像来完成(令人尴尬的相同)相同的效果:

(在Youtube主页上,右键单击背景显示它,然后右键单击图像和"显示图像属性"[ffox]):

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJUAAACVCAAAAAB0....lotsofdata
Run Code Online (Sandbox Code Playgroud)

我试图发现这行代码在源代码中的位置,但由于动态创建,我不能.

所以,我的问题是:"有没有办法将平铺的背景应用到页面,使用生成算法的png图像CLIENT-SIDE?" (最好用javascript)

我是webdev和javascript的初学者,但我喜欢将我的学习基于定义的问题来解决,所以这将是学习一些东西的好方法

谢谢阅读!

更新:

对于任何对使用javascript生成平铺纹理感兴趣的人,我发现了这个,这看起来非常有趣:

http://somethinghitme.com/projects/canvasterrain/

http://somethinghitme.com/projects/canvasterrain/js/canvasTerrain.js

html javascript png client-side background-image

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

如何在C#中更改NaN字符串表示?

我的程序将一个pointcloud保存到文件中,其中每个pointcloud都是Point3D[,]来自System.Windows.Media.Media3D命名空间的.这显示了输出文件的一行(用葡萄牙语):

-112,644088741971;71,796623005014;NaN (Não é um número)
Run Code Online (Sandbox Code Playgroud)

虽然我希望它(为了以后正确解析):

-112,644088741971;71,796623005014;NaN
Run Code Online (Sandbox Code Playgroud)

生成文件的代码块在这里:

var lines = new List<string>();

for (int rows = 0; rows < malha.GetLength(0); rows++) {
    for (int cols = 0; cols < malha.GetLength(1); cols++) {

        double x = coordenadas_x[cols];
        double y = coordenadas_y[rows];
        double z;

        if ( SomeTest() ) {
            z = alglib.rbfcalc2(model, x, y);
        } else {
            z = double.NaN;
        }

        var p = new Point3D(x, y, z);
        lines.Add(p.ToString());                       

        malha[rows, cols] = p;
    }
}

File.WriteAllLines("../../../../dummydata/malha.txt", …
Run Code Online (Sandbox Code Playgroud)

.net c# tostring nan

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

如何封装可观察的长反应链的创建

目前我有以下Rx/ReactiveUI代码块:

        this.WhenAnyValue(x => x.Listras)
            .Where(item => item != null)
            .Throttle(TimeSpan.FromMilliseconds(millis))
            .ObserveOn(TaskPoolScheduler.Default)
            .Select(im => GetArray.FromChannels(im, 0, 1))
            .ObserveOn(RxApp.MainThreadScheduler)
            .ToProperty(this, x => x.Grayscale, out _grayscale);

        this.WhenAnyValue(x => x.Grayscale)
            .Where(item => item != null)
            .Throttle(TimeSpan.FromMilliseconds(millis))
            .ObserveOn(TaskPoolScheduler.Default)
            .Select(ar => Gaussian.GaussianConvolution(ar, 1.5))
            .ObserveOn(RxApp.MainThreadScheduler)
            .ToProperty(this, x => x.BlurMenor, out _blurMenor);

        this.WhenAnyValue(x => x.BlurMenor)
            .Where(item => item != null)
            .Throttle(TimeSpan.FromMilliseconds(millis))
            .ObserveOn(TaskPoolScheduler.Default)
            .Select(ar => { ConversorImagem.Converter(ar, out BitmapSource im); return im; })
            .ObserveOn(RxApp.MainThreadScheduler)
            .ToProperty(this, x => x.ImagemBlurMenor, out _imagemBlurMenor);

        this.WhenAnyValue(x => x.BlurMenor)
            .Where(item => item != null)
            .Throttle(TimeSpan.FromMilliseconds(millis)) …
Run Code Online (Sandbox Code Playgroud)

c# fluent system.reactive reactiveui

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

绘图仪 GUI 组件中自缩放标尺的算法

我正在使用 C#/WPF 设计(而不是编程)用于医疗数据的数据系列查看器程序。有一个显示数据的主面板,具有常见的鼠标平移/缩放功能(左拖动平移、水平滚动缩放、双击垂直自动适应、右拖动选择)。

问题是:我需要在顶部/左侧带有标尺的垂直和水平网格,类似于在音频编辑(goldwave、audacity)、制图(gpsTrackmaker)和 ilustration(photoshop、inkscape)程序中看到的那些。此外,这些标尺甚至可以在大多数绘图 API(Matlab、GNUPlot、Matplotlib)甚至办公程序(Excel、Calc)中进行配置。

除了始终与内容对齐和缩放外,主要的必要条件是拥有一种“抗杂乱”算法,该算法仅以可能的最大粒度绘制刻度标签,而标签不会相互“碰撞”或隐藏。

下图显示了 Inkscape 上同一绘图的两个缩放级别。第一行显示每百个标签。第二行显示每个十年的标签。

问题是:“由于这(查看标尺的自动分辨率)似乎是许多程序中已解决的问题,我应该如何查找/可用的资源/教程是什么,以便我可以指定和实现这样一个适合的控件我的需求?”

我将不胜感激任何建议或示例,最好使用 C#,但可以使用任何语言。

在此处输入图片说明

algorithm scaling zooming rulers

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

Scipy径向基函数中的Python MemoryError(scipy.interpolate.rbf)

我正在尝试使用Scipy径向基函数(Rbf)插值表示2D表面的不太大(~10,000个样本)的pointcloud.我得到了一些好的结果,但是我的上一个数据集我一直都在得到MemoryError,即使错误在执行期间几乎立即出现(RAM显然没有被吃掉).

我决定rbf.py从Scipy中删除该文件的副本,首先填写一些非常有用的打印语句.通过_euclidean_norm逐行分解方法,如下所示:

def _euclidean_norm(self, x1, x2):
    d = x1 - x2
    s = d**2
    su = s.sum(axis=0)
    sq = sqrt(su)
    return sq
Run Code Online (Sandbox Code Playgroud)

我在第一行收到错误:

File "C:\MyRBF.py", line 68, in _euclidean_norm
    d = x1 - x2
MemoryError
Run Code Online (Sandbox Code Playgroud)

该规范被称为数组X1,形式为[[x1,y1],[x2,y2],[x3,y3],...,[xn,yn]]和X2,它们是X1转换的在Rbf类内部的下面的方法,已经被我用于调试目的:

def _call_norm(self, x1, x2):
    print x1.shape
    print x2.shape
    print

    if len(x1.shape) == 1:
        x1 = x1[newaxis, :]
    if len(x2.shape) == 1:
        x2 = x2[newaxis, :]
    x1 = x1[..., :, newaxis]
    x2 = x2[..., newaxis, :]

    print …
Run Code Online (Sandbox Code Playgroud)

python memory interpolation numpy scipy

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

如何在XAML中手动(无绑定)将ListViewItem添加到WPF多列ListView

我在Expression Blend中遇到了ListView设计的问题,这比我想象的要难.

我想用XAML绘制一个屏幕.这不会在应用程序内部运行,只是一个静态设计研究,应该只在Expression Blend的设计窗口中进行查看.

到目前为止我有这个:

<ListView x:Name="examList" SelectionMode="Single">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Date" Width="Auto"/>
            <GridViewColumn Header="Setup" Width="Auto"/>
            <GridViewColumn Header="Protocol" Width="Auto" />
            <GridViewColumn Header="Channels" Width="Auto"/>
            <GridViewColumn Header="Duration" Width="Auto"/>
        </GridView>
    </ListView.View>

    <ListViewItem>
        <TextBlock Text="stuff" />  <!-- what should I put here??? -->
    </ListViewItem>
</ListView>
Run Code Online (Sandbox Code Playgroud)

问题是:我不知道如何为每个字段(GridView中的每一列)创建一个字符串或数字值的ListViewItems.

我会感谢任何帮助,无论是否有代码隐藏,但我的工作流程的一个必要条件是它在Expression Blend中的设计时呈现而无需运行应用程序,并且最好是数据不是从另一个文件绑定的,但手工输入直接进入XAML(我不介意,实际上我想要它).

我找到了这个答案,但我认为它不能满足我的需要.

谢谢阅读!

wpf xaml listview gridview listviewitem

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

使用Scipy/Numpy仅获取浊点2D插值中的"有效"点

我有一个从人的背部摄影测量得到的浊点.我正在尝试插入它来获得一个规则的网格,为此我scipy.interpolate到目前为止使用的效果很好.问题是:我正在使用的函数(scipy.interpolate.griddata)在平面x,y中使用云点的凸包,因此给出了原始表面中不存在的具有凹周长的一些值.

下图显示了左侧的原始cloudpoint(显示为水平线的内容实际上是一个密集的线形云点),结果griddata让我处于中间位置,我希望得到的结果在右边 - - x,y平面上的云点的"阴影"类型,其中原始表面中的不存在点将为零或Nans.

在此输入图像描述

我知道我可以删除cloudpoint上的Z坐标并检查每个网格位置是否接近,但这是如此暴力,我相信这应该是点云应用程序的常见问题.另一种可能是在点云上执行一些numpy操作,找到一个numpy掩码或布尔2D数组来"应用"结果griddata,但我没有找到任何(这些操作有点超出我的Numpy/Scipy知识).

有什么建议吗?

谢谢阅读!

3d numpy scipy smoothing

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

如何使用python os更改驱动器?

我正在尝试将当前目录更改C:Y: 我尝试过:

import os
os.chdir('Y:')
Run Code Online (Sandbox Code Playgroud)

但我一直收到一个错误,说它找不到驱动器.基本上我正在寻找相当于

cd /d
Run Code Online (Sandbox Code Playgroud)

cmd中的命令.

python windows chdir

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

我应该避免在变量名中使用Unicode字符吗?

C#语言规范说我们可以在规范符中使用Unicode字符(类和变量名等)。

我在代码中做了很多工作。由于我住在巴西,这包括大量的重音字符,变量名,如rotaçãoângulomáximo,等。

每当有更多“经验丰富”的开发人员意识到这一点时,我都强烈建议您避免使用它,并将一切变回原本的状态,否则很多小猫会死掉。

我花了很长时间才撤消它,但是今天我在很早以前编写的方法中发现了一些仍带有重音符号的变量,到目前为止,还没有小猫死(至少不是因为这个原因)。

由于我的语言(葡萄牙语)是重音符号,因此如果我们的代码库中包含这些字符,那么这很有意义,因为C#明确允许它。

所以问题是:

是否有任何声音技术原因不能在C#/ VisualStudio的代码库中使用Unicode字符?

c# visual-studio

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