小编adc*_*lds的帖子

给定两个顶点围绕中心点旋转线

我一直试图将一堆线旋转90度(它们一起形成折线).每行包含两个顶点,例如(x1,y1)和(x2,y2).我目前要做的是围绕线的中心点旋转,给定中心点| x1 - x2 | 和| y1 - y2 |.出于某种原因(我不是在数学上非常精明)我无法正确旋转线条.

有人可以验证这里的数学是否正确?我认为它可能是正确的,但是,当我将线的顶点设置为新的旋转顶点时,下一行可能无法从上一行抓取新的(x2,y2)顶点,导致线条不正确地旋转.

这是我写的:

def rotate_lines(self, deg=-90):
    # Convert from degrees to radians
    theta = math.radians(deg)

    for pl in self.polylines:
        self.curr_pl = pl
        for line in pl.lines:
            # Get the vertices of the line
            # (px, py) = first vertex
            # (ox, oy) = second vertex
            px, ox = line.get_xdata()
            py, oy = line.get_ydata()

            # Get the center of the line
            cx = math.fabs(px-ox)
            cy = math.fabs(py-oy)

            # Rotate line around center …
Run Code Online (Sandbox Code Playgroud)

python trigonometry rotation

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

使用JUnit测试图像文件

我正在寻找有关如何使用JUnit测试动态生成的图像是预期图像的方向.一点背景:

我有代码生成缩略图像为java.awt.image.BufferedImage并将这些BufferedImages存储到java.io.File对象中.

我写了一个简单的单元测试来检查一些关键项目,以确保生成的图像是正确的:

@Test
public void testGenerateDefaultThumbnail() {
    File file = // someGeneratedFile.jpg

    assertNotNull(file);
    assertEquals(10211l, file.length());
}
Run Code Online (Sandbox Code Playgroud)

基本上,我只是确认文件大小是我所期望的.

这在我的机器(Mac OSX)上本地工作正常,但是只要我们的测试在我们的构建服务器(Ubuntu)上运行,其中一个测试就会失败并出现以下情况:

java.lang.AssertionError: expected:<10211> but was:<10158>
  at org.junit.Assert.fail(Assert.java:88)
  at org.junit.Assert.failNotEquals(Assert.java:743)
  at org.junit.Assert.assertEquals(Assert.java:118)
  at org.junit.Assert.assertEquals(Assert.java:555)
  at org.junit.Assert.assertEquals(Assert.java:542)
  at c.v.t.ThumbnailTest.testGenerateDefaultThumbnail(ThumbnailTest.java:53)
Run Code Online (Sandbox Code Playgroud)

三部分问题:

  • 为什么跨操作系统的图像的文件大小不同?
  • 单元测试图像生成是否有标准方法?
  • 我是否应该更改我的方法来比较两个File对象(预生成的文件作为项目中的资源存在)?

谢谢!

java junit unit-testing

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

标签 统计

java ×1

junit ×1

python ×1

rotation ×1

trigonometry ×1

unit-testing ×1