小编D.N*_*.N.的帖子

Java - 子像素线精度是否需要AffineTransform?

我之前从未使用过Java绘图方法,所以我决定潜入并创建一个模拟时钟作为PoC.除了手之外,我画了一个钟面,包括刻度标记,分钟/小时.我使用简单的sin/cos计算来确定圆周线的位置.

但是,我注意到由于分钟刻度非常短,因此线条的角度看起来不对.我确定这是因为两者Graphics2D.drawLine()Line2D.double()方法都无法以亚像素精度绘制.

我知道我可以画出来自中心的线条并用圆圈遮住它(以创建更长,更准确的线条),但这似乎是一种不那么优雅和昂贵的解决方案.我已经做过一些关于如何做到这一点的研究,但我遇到的最好的答案是使用一个AffineTransform.我假设我只能使用AffineTransformwith旋转,而不是必须执行超级采样.

这是以亚像素精度绘制的唯一/最佳方法吗?或者是否有更快的解决方案?

编辑:我已经设置RenderingHintGraphics2D对象.

根据要求,这里有一些代码(没有完全优化,因为这只是一个PoC):

diameter = Math.max(Math.min(pnlOuter.getSize().getWidth(),
                             pnlOuter.getSize().getHeight()) - 2, MIN_DIAMETER);

for (double radTick = 0d; radTick < 360d; radTick += 6d) {
   g2d.draw(new Line2D.Double(
      (diameter / 2) + (Math.cos(Math.toRadians(radTick))) * diameter / 2.1d,
      (diameter / 2) + (Math.sin(Math.toRadians(radTick))) * diameter / 2.1d,
      (diameter / 2) + (Math.cos(Math.toRadians(radTick))) * diameter / 2.05d,
      (diameter / 2) + (Math.sin(Math.toRadians(radTick))) * diameter / 2.05d));
} // End for(radTick) …
Run Code Online (Sandbox Code Playgroud)

java drawing line affinetransform subpixel

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

Java - 多个并发runtime.exec()InputStreams的问题

我别无选择,只能通过多次Runtime.exec()调用VBScript 来检索一些外部数据.我真的很讨厌这种实现,因为我失去了跨平台的灵活性,但我最终可能会开发类似的*nix脚本来至少缓解这个问题.有人问之前,我不能工作,各地要调用外部脚本来收集我的数据.我会忍受导致的问题.

这些exec()进程在扩展的自定义类中运行Runnable.它使用a BufferedReader来读取数据getInputStream().

编辑:更多的代码按要求添加,但我不知道额外的代码是如何相关的:)我希望它有所帮助,因为它需要一段时间来格式化!哦,如果它的丑陋,我的代码风格变得容易,但鼓励建设性的批评......

public class X extends JFrame implements Runnable {

   ...
   static final int THREADS_MAX = 4;
   ExecutorService  exec;
   ...
   public static void main(String[] args) {
      ...
      SwingUtilities.invokeLater(new X("X"));
   } // End main(String[])

   public X (String title) {
      ...
      exec = Executors.newFixedThreadPool(THREADS_MAX);
      ...

      // Create all needed instances of Y
      for (int i = 0; i < objects.length; i++) {
         Y[i] = new Y(i);
      } …
Run Code Online (Sandbox Code Playgroud)

java concurrency inputstream exec

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

适用于非IDE Java开发人员的C#SDK

多年来,我一直在使用Java作为开发重复性任务的快速简便工具的一种方法.我不是传统意义上的真正的"开发者",但我有很多经验来创建各种各样的工具和PoC.

对我来说不幸的是,我注意到很多商店都专门寻找C#的经验,而不是那么多的Java.即使在SO上,与Java相比,C#相关问题还有更多问题和更多关注者.我的偏好永远是Java over C#,只是为了跨平台兼容性,但由于语言非常相似,我相信对我来说,交叉训练是有益的.我已经涉足过其他语言和脚本(VB和其他BASIC版本,Javascript,VBScript,ASP,JSP,PHP等),所以添加另一个并不是不可能的.

我当前的Java环境只包含一个文本编辑器(主要是jEdit用于其插件和布局)和自制脚本来编译/ jar我的项目.我不喜欢使用IDE,因为我想完全控制我的代码,不希望程序为我编写代码.(如果可行,我也更喜欢编写自己的代码,而不是使用任何类型的外部库/包.它可以帮助我学习并大大减少不必要的代码.)

因此,对于非IDE C#SDK,我有哪些选择?图书馆对我来说显然不那么重要.我听说Mono似乎将功能分开了,但还没有尝试过.还有哪些其他SDK类似于结合文本编辑器的简单Java SDK?

c# java sdk

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

在mysql中存储日期

将日期存储在三列中的mysql或仅使用一列是否更好?哪一个更快.另外,如果我只想用格式为dd/mm/yy的今天日期插入,我该怎么做.以及如何选择.另外,让我们说如果我想获得所有星期三的结果,我该怎么做或者说在所有月份和年份中的第25个日期,我该怎么做.

谢谢大家.

我正在使用PHP与Apache和Mysql.

使用我提议的结构有什么缺点.我可以通过使用日期表轻松获得所有25日,我可以使用其他列数天来获取所有日期.我提出的解决方案与使用DATE表之间的速度方面有多大差异?

mysql sql date

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

标签 统计

java ×3

affinetransform ×1

c# ×1

concurrency ×1

date ×1

drawing ×1

exec ×1

inputstream ×1

line ×1

mysql ×1

sdk ×1

sql ×1

subpixel ×1