标签: diagonal

如何对角移动可见图像?

我一直试图弄清楚如何在applet窗口中对角线移动可见图像.

如果按向上,向下,向左或向右按​​下图像(gif)会相应移动,但是如果您尝试同时按下两个键(例如同时向上和向右),图像只会按您按下的方向移动第二(即使你同时按下按键仍有微观延迟).

可能有一种简单的方法可以解决这个问题,我只是不知道,或者某个人已经想到了解决方法......我感谢任何帮助或建议.

谢谢

英雄级(这个类定义了"英雄"是什么;在这种情况下是一个简单的像素人,他能做什么)

import objectdraw.*;
import java.awt.*;

public class Hero extends ActiveObject {

private DrawingCanvas canvas;
private VisibleImage player;

public Hero(Location initLocation, Image playerPic, DrawingCanvas aCanvas) {
canvas = aCanvas;

player = new VisibleImage(playerPic, canvas.getWidth()/3,
         canvas.getWidth()/3, canvas);
start();

}
public void run() 
{

}

public void move(double dx, double dy) 
{
player.move(dx, dy);
}
}
Run Code Online (Sandbox Code Playgroud)

HeroGame类(此类创建"Hero"并指定位置,以及用于移动的键)

import objectdraw.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class HeroGame extends WindowController implements KeyListener {
private Hero theHero;
private Image playerPic; …
Run Code Online (Sandbox Code Playgroud)

java applet gif active-objects diagonal

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

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

Matlab减少矩阵对角线

我想创建一个矩阵,其中中间对角线对称地减少到两侧,如下所示:

5 4 3 2 1
4 5 4 3 2
3 4 5 4 3
2 3 4 5 4
1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

矩阵必须是100x100,值介于0和之间1.到目前为止,我只得到边缘和中间对角线,但无法了解如何自动填充其余部分.

v = ones(1,100);
green = diag(v);
green(:,1) = fliplr(0:1/99:1);
green(1,:) = fliplr(0:1/99:1);
green(100,:) = 0:1/99:1;
green(:,100) = 0:1/99:1;
Run Code Online (Sandbox Code Playgroud)

matlab matrix diagonal

6
推荐指数
4
解决办法
288
查看次数

修改特征矩阵对角线

我有一个Eigen::MatrixXd,我需要修改其对角线元素的值.特别是我有另一个Eigen::MatrixXd有一个单独的列和第一个矩阵的相同行数.

我需要减去第一个矩阵的对角线,第二个矩阵的元素的值.

例:

A
 1 2 3
 4 5 6
 7 8 9

B
 1
 1
 1


A'
 0 2 3
 4 4 6
 7 8 8
Run Code Online (Sandbox Code Playgroud)

我能怎么做?

c++ matrix eigen diagonal

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

在numpy中沿一个轴对角化二维矩阵

给定维度为 MxN 的矩阵 X。我想为 X 的每一行创建一个对角矩阵。结果应为 MxNxN。如何高效地做到这一点?谢谢你!

numpy matrix diagonal

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

将 Eigen::DiagonalMatrix 添加到 Eigen::SparseMatrix 的最有效方法是什么

我惊讶地发现不可能简单地将 an 添加Eigen::DiagonalMatrix到 an Eigen::SparseMatrix

#include <Eigen/Core>
#include <Eigen/Sparse>

int main()
{
  Eigen::Matrix4d M;
  M<<1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;
  Eigen::SparseMatrix<double> S = M.sparseView();
  Eigen::DiagonalMatrix<double,Eigen::Dynamic> D = 
    Eigen::VectorXd::LinSpaced(4,1,4).asDiagonal();
  Eigen::SparseMatrix<double> T = D+S;
}
Run Code Online (Sandbox Code Playgroud)

不会编译:

 error: invalid operands to binary expression ('Eigen::DiagonalMatrix<double, Eigen::Dynamic>' and 'Eigen::SparseMatrix<double>')
  Eigen::SparseMatrix<double> T = D+S;
Run Code Online (Sandbox Code Playgroud)

似乎在 Eigen 3.3 中我可以使用:

  T.diagonal() = D.diagonal() + T.diagonal();
Run Code Online (Sandbox Code Playgroud)

但这不适用于较旧(更稳定)的 Eigen 3.2.*:

error: no viable overloaded '='
  T.diagonal() = D.diagonal() + T.diagonal();
Run Code Online (Sandbox Code Playgroud)

我真的必须遍历条目并一一插入吗?

 Eigen::SparseMatrix<double> T = S;
 for(int i = 0;i<T.rows();i++) T.coeffRef(i,i) += D.diagonal()(i); …
Run Code Online (Sandbox Code Playgroud)

c++ sparse-matrix eigen diagonal

6
推荐指数
0
解决办法
345
查看次数

CSS对角div背景

对于我正在开发的网站,我需要在上添加一些对角线形的边框div。这些是我需要重新创建的主要示例。

双对角线顶部边框,三角形

现在正在网上搜索如何实现此目的,我的第一个想法就是使用::before。但是,如果没有将其定位为绝对位置(弄乱整个页面),我将无法使其正常工作。

这是我尝试实现的代码:

.slider-container{
  background-color: $blue;
  width: 100%;
  overflow: hidden;
  position: relative;
  .col-md-3{
    img{
      padding: 40px;
      width: 100%;
      max-width: 400px;
      margin: auto;
    }
  }
  &::before {
    background: red;
    bottom: 100%;
    content: '';
    display: block;
    height: 100%;
    position: absolute;
    right: 0;
    transform-origin: 100% 100%;
    transform: rotate(-15deg);
    width: 150%;
  }
}
Run Code Online (Sandbox Code Playgroud)
<section id="slider">
    <div class="container-fluid">
        <div class="row slider-container">
            <div class="col-md-3">
                <p>imgae 1</p>
            </div>
            <div class="col-md-3">
                <p>imgae 2</p>
            </div>
            <div class="col-md-3">
                <p>imgae 3</p>
            </div>
            <div class="col-md-3">
                <p>imgae 4</p> …
Run Code Online (Sandbox Code Playgroud)

html css diagonal

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

奇异值分解 (SVD) 输出一维奇异值数组,而不是二维对角矩阵 [Python]

我在类似主题上发布了一个问题,并遇到了另一个更重要的问题。

当我将 SVD 应用于矩阵“A”(下面的代码)时,我得到的输出是预期的二维特征向量矩阵(“U”和“V”)和意外的一维奇异值数组“S”。

U,S,V=np.linalg.svd(A)
Run Code Online (Sandbox Code Playgroud)

对于上下文:它出乎意料的原因是奇异值分解应该产生三个矩阵的乘积。中间矩阵(在本例中为一维数组)应该是对角矩阵,以降序保存非负奇异值。

为什么 Python 将矩阵“转换”为数组?有办法解决吗?

谢谢!

python matrix svd diagonal

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

删除零元素的对角线

我正在尝试从原始形状重塑数组,以使每一行的元素沿对角线下降:

np.random.seed(0) 
my_array = np.random.randint(1, 50, size=(5, 3))
Run Code Online (Sandbox Code Playgroud)
array([[45, 48,  1],
       [ 4,  4, 40],
       [10, 20, 22],
       [37, 24,  7],
       [25, 25, 13]])
Run Code Online (Sandbox Code Playgroud)

我希望结果如下所示:

my_array_2 = np.array([[45,  0,  0],
                       [ 4, 48,  0],
                       [10,  4,  1],
                       [37, 20, 40],
                       [25, 24, 22],
                       [ 0, 25,  7],
                       [ 0,  0, 13]])
Run Code Online (Sandbox Code Playgroud)

这是我能得到的最接近的解决方案:

my_diag = []
for i in range(len(my_array)):
    my_diag_ = np.diag(my_array[i], k=0)
    my_diag.append(my_diag_)
my_array1 = np.vstack(my_diag)
Run Code Online (Sandbox Code Playgroud)
array([[45,  0,  0],
       [ 0, 48,  0],
       [ 0,  0,  1],
       [ 4, …
Run Code Online (Sandbox Code Playgroud)

python numpy diagonal numpy-ndarray

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

如何对角分组正方形网格

我有一串代表方形网格的布尔值。

0100001110000100
Run Code Online (Sandbox Code Playgroud)

表示为网格的布尔字符串

我正在尝试编写验证例程,该例程对角线检查网格,以确保其中不存在具有多个“1”值的对角线。

在此输入图像描述

从这个例子中可以看出,第五组有两个。

为了做到这一点,我想将网格排列成集合,然后检查每个集合以查看它是否具有多个“1”值。

下面显示的是排列为集合的值,以及每个值在原始字符串中的位置。

0       0  
01      4  1
100     8  5  2
0010    12 9  6 3
101     13 10 7
00      14 11 
0       15 
Run Code Online (Sandbox Code Playgroud)

我一直在试图找出字符串位置和它属于哪个组之间的数学关系。我尝试过各种公式,但我数学不太好,所以我被难住了。

作为参考,下面的方法是我用来水平验证字符串的方法。我想要提出的解决方案需要像这样,使用 LINQ 和基于集合的操作,而不是使用许多尴尬的循环。我正在进行的练习是关于在风电场中放置涡轮机的代码套路。

    public bool HorizontalValidate(string windfarm)
    {
        var farmSize = (int) Math.Sqrt(windfarm.Length);

        var rows = Enumerable.Range(0, farmSize)
            .Select(x => windfarm.Substring(x * farmSize, farmSize))
            .ToList();

        if (rows.Select(x => x.Count(y => y == '+')).Max() > 1)
            return false;

        return true;
    }
Run Code Online (Sandbox Code Playgroud)

如果有人感兴趣,这里有一个链接: Windfarm Kata

c# linq algorithm diagonal

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

标签 统计

diagonal ×10

matrix ×4

c++ ×2

eigen ×2

numpy ×2

python ×2

active-objects ×1

algorithm ×1

android ×1

applet ×1

c# ×1

css ×1

gif ×1

html ×1

java ×1

linq ×1

matlab ×1

numpy-ndarray ×1

shape ×1

sparse-matrix ×1

svd ×1

xml ×1