标签: interpolation

插值as3

我正在开发一个将一些源代码ActionScript 3转换为C#的项目.它具有以下功能:

Point.interpolate(Point p1, Point p2, Number distance)
Run Code Online (Sandbox Code Playgroud)

此功能的文档在这里.

我想问一下函数的算法是如何工作的.

interpolation actionscript-3

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

如何在 ZSH 提示中输出当前历史事件编号(%! 或 %h)-1?

在我的 ZSH 提示中,我希望能够输出当前历史事件编号(%!%h)-1

如果当前历史事件编号是 !256,我想将其减一并在我的提示中输出结果(即 !255)。

这是它现在的样子以及我希望它的样子:

我当前 ZSH 提示符的屏幕截图

下面是我当前的 ZSH 主题(与此问题有关的代码位于previous_history_event_number ()函数中,该函数由return_code_enabled=声明触发:

# ------------------------------------------------------------------------------
#          FILE:  hced.zsh-theme
#   DESCRIPTION:  oh-my-zsh theme file.
#                 (Credits to authors of blinks.zsh-theme and dieter.zsh-theme
#                  from which themes I've taken useful bits.)
#        AUTHOR:  hced
#       VERSION:  0.0.1
#    SCREENSHOT:
# ------------------------------------------------------------------------------

function _prompt_char() {
  if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
    echo "%{%F{blue}%}±%{%f%k%b%}"
  else
    echo ' '
  fi
}

ZSH_THEME_GIT_PROMPT_PREFIX=" [%{%B%F{blue}%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{%f%k%b%K{black}%B%F{green}%}]"
ZSH_THEME_GIT_PROMPT_DIRTY=" %{%F{red}%}*%{%f%k%b%}"
ZSH_THEME_GIT_PROMPT_CLEAN=""

PROMPT='%{%f%k%b%} …
Run Code Online (Sandbox Code Playgroud)

interpolation zsh prompt type-conversion command-prompt

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

插值结果如何大于或小于原始信号的最小值/最大值?

如果我有一个矩阵

>> M=[0 0 1 1 0 ]
M =
     0     0     1     1     0
Run Code Online (Sandbox Code Playgroud)

并调整它的大小

>> imresize(M,[1,size(M,2)*2])
Run Code Online (Sandbox Code Playgroud)

我得到了答案

ans =
         0   -0.0234   -0.0703    0.2031    0.7969    1.0938    1.0938    0.7969    0.2031   -0.0703
Run Code Online (Sandbox Code Playgroud)

我的原始数组没有任何小于0或大于1的值.为什么它包含大于1的值或小于0的值?

matlab interpolation image-processing image-resizing

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

如何加快图像的双线性插值?

我试图用插值旋转图像,但对于大图像来说它实时太慢了.

代码类似于:

for(int y=0;y<dst_h;++y)
{
    for(int x=0;x<dst_w;++x)
    {
        //do inverse transform
        fPoint pt(Transform(Point(x, y)));

        //in coor of src
        int x1= (int)floor(pt.x);
        int y1= (int)floor(pt.y);
        int x2= x1+1;
        int y2= y1+1;


        if((x1>=0&&x1<src_w&&y1>=0&&y1<src_h)&&(x2>=0&&x2<src_w&&y2>=0&&y2<src_h))
        {
                Mask[y][x]= 1; //show pixel

                float dx1= pt.x-x1;
                float dx2= 1-dx1;
                float dy1= pt.y-y1;
                float dy2= 1-dy1;

                //bilinear
                pd[x].blue= (dy2*(ps[y1*src_w+x1].blue*dx2+ps[y1*src_w+x2].blue*dx1)+
                        dy1*(ps[y2*src_w+x1].blue*dx2+ps[y2*src_w+x2].blue*dx1));
                pd[x].green= (dy2*(ps[y1*src_w+x1].green*dx2+ps[y1*src_w+x2].green*dx1)+
                        dy1*(ps[y2*src_w+x1].green*dx2+ps[y2*src_w+x2].green*dx1));
                pd[x].red= (dy2*(ps[y1*src_w+x1].red*dx2+ps[y1*src_w+x2].red*dx1)+
                        dy1*(ps[y2*src_w+x1].red*dx2+ps[y2*src_w+x2].red*dx1));

                //nearest neighbour
                //pd[x]= ps[((int)pt.y)*src_w+(int)pt.x];
        }
        else
                Mask[y][x]= 0; //transparent pixel
    }
    pd+= dst_w;
}
Run Code Online (Sandbox Code Playgroud)

我如何加速这段代码,我尝试并行化这段代码,但由于内存访问模式(?)似乎没有加速.

c++ performance interpolation image-processing image-rotation

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

2 个 4x4 矩阵之间的插值

对于使用 colladas 的骨骼动画,我需要在 2 个矩阵之间进行线性插值。我在某处看到我可以使用四元数在矩阵之间进行插值,但这仅适用于旋转分量,而且我还需要保留变换。这是我的代码,除了翻译部分外,它都有效:

float total = (orderedBones[i]->Animation->keyFrames[nextKeyFrame] - orderedBones[i]->Animation->keyFrames[nextKeyFrame - 1]) * 100.0;
float progress = orderedBones[i]->Animation->accumTime - orderedBones[i]->Animation->keyFrames[nextKeyFrame - 1] * 100.0;
float interpolation = progress / total;

glm::quat firstQuat = glm::quat_cast(orderedBones[i]->Animation->Matrices[nextKeyFrame - 1]);
glm::quat secondQuat = glm::quat_cast(orderedBones[i]->Animation->Matrices[nextKeyFrame]);
glm::quat finalQuat = glm::slerp(firstQuat, secondQuat, interpolation);

orderedBones[i]->Animation->interpoltaedMatrix = glm::mat4_cast(finalQuat);
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到这一点吗?

interpolation matrix quaternions

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

Unity3d随着时间的推移在特定点周围旋转

我正在写一个功能,在一段时间内慢慢转动90度.到目前为止一切正常,我只需要弄清楚如何使它围绕一个点旋转而不是围绕变换中心旋转.

protected bool _isRotating = false;
public IEnumerator RotateWithEasing(GameHelper.Axis axis, Vector3 isolatedAxisPoint, float inTime)
{
    if(_isRotating)
    {
        yield break;
    }

    _isRotating = true;

    var degrees = this.GetDegreesFromAxis(axis);

    Quaternion fromAngle = transform.rotation;
    Quaternion toAngle = Quaternion.Euler(transform.eulerAngles + degrees);
    for (float t = 0f; t < 1f; t += Time.deltaTime / inTime)
    {
        transform.rotation = Quaternion.Lerp(fromAngle, toAngle, t);
        yield return null;
    }

    _isRotating = false;
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我指出正确的方向,我如何修改它,以便它围绕指定的isolatedAxisPoint旋转?

c# interpolation unity-game-engine

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

如何简化样条曲线?

在我正在开发的项目中,我有一个有趣的算法挑战.我有一个排序的坐标点列表,指向街道两侧的建筑物,这些建筑物已经足够放大,如下所示:

在此输入图像描述

我想采取这种曲折并将其平滑以使基础街道线性化.

我可以想到几个解决方案:

  1. 使用六个左右的滚动平均值计算质心,并使用它们.
  2. 样条回归.

是否有更好或最好的方法来解决这个问题?(我使用的是Python 3.5)

algorithm interpolation geospatial smoothing spatial-interpolation

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

如何在Twig插值中嵌入双引号?

我试图sprintf(' href="%s%s"', ..., ...)从PHP文件替换为其Twig替代品.我想使用Twig的插值功能,但字符串表达式必须用双引号括起来,并包含 href属性值周围的嵌入式引号.

有没有办法做到这一点?在这方面,文档似乎相当轻.

{{ " href="#{value1}#{value2)"" }}

php interpolation symfony twig

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

从离散数据插值的曲线的切线

我想知道是否有办法从离散数据中找到曲线的切线。例如:

x = np.linespace(-100,100,100001)
y = sin(x)
Run Code Online (Sandbox Code Playgroud)

所以这里的 x 值是整数,但是如果我们想在类似的地方找到切线x = 67.875怎么办?

我一直试图弄清楚是否numpy.interp会起作用,但到目前为止没有运气。我还发现了几个类似的例子,比如这个,但还没有能够将这些技术应用于我的案例:(我是 Python 的新手,还不完全知道一切是如何工作的,所以任何帮助都会值得赞赏...

这就是我得到的: 在此处输入图片说明

from scipy import interpolate
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-100,100,10000)
y = np.sin(x)
tck, u = interpolate.splprep([y])

ti = np.linspace(-100,100,10000)
dydx = interpolate.splev(ti,tck,der=1)

plt.plot(x,y)
plt.plot(ti,dydx[0])
plt.show()
Run Code Online (Sandbox Code Playgroud)

python interpolation matplotlib

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

外推数据框行

我有一个df喜欢

d = {'col1': [np.nan, np.nan, 1],
     'col2': [1, 1, 2],
     'col3': [2, 2, 3],
     'col4': [np.nan, 3, np.nan]}
df = pd.DataFrame(data=d)
Run Code Online (Sandbox Code Playgroud)

并希望对行进行外推以填充任何尾随nans。

预期输出:

d2 = {'col1': [np.nan, np.nan, 1],
      'col2': [1, 1, 2],
      'col3': [2, 2, 3],
      'col4': [3, 3, 4]}
df2 = pd.DataFrame(data=d2)
Run Code Online (Sandbox Code Playgroud)

编辑:每行的斜率都不同。我试过了,df.interpolate(method='linear')但这给了我尾随nans的平坦趋势

interpolation scipy dataframe pandas extrapolation

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