我有 2 个关于贝塞尔曲线的问题,并使用它们来近似圆的部分。
给定单位圆弧 (1,0)->(cos(a),sin(a)) 其中 0 < a < pi/2,是否会很好地逼近该弧以找到贝塞尔曲线的控制点 p1 , p2 通过求解由要求 B(1/3) = (cos(a/3), sin(a/3)) 和 B(2/3) = (cos(2a/3), sin( 2a/3))。(换句话说,要求贝塞尔曲线通过弧中的两个均匀间隔的点)。
如果我们有一个仿射变换 A 将圆弧转为椭圆弧,变换后的控制点 Ap0、Ap1、Ap2、Ap3 是否会定义椭圆弧的良好贝塞尔近似?
p0 和 p3 当然是曲线的起点和终点:(1,0) 和 (cos(a), sin(a))。
谢谢
可能重复:
在Ubuntu 11.10上安装IDEA
我已经使用OpenJDK运行IntelliJ IDEA但是在终端启动IntelliJ IDEA时它向我显示:
$ ./idea.sh
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b24~pre2-1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
WARNING: You are launching IDE using OpenJDK Java runtime.
THIS IS STRICTLY UNSUPPORTED DUE TO KNOWN PERFORMANCE AND GRAPHICS PROBLEMS!
NOTE: If you have both Oracle (Sun) JDK and OpenJDK installed
please validate either IDEA_JDK, JDK_HOME, or JAVA_HOME environment variable points to valid Oracle (Sun) JDK installation.
See http://ow.ly/6TuKQ for more info on switching default JDK
Press Enter to …Run Code Online (Sandbox Code Playgroud) 首先,一点背景(如果不感兴趣,可以跳过一点).我很生气,很困惑!这应该是一个非常简单的用例,事实上我的代码已经用Eclipse JDT编译器编译得很好,所以直到现在我一直在配置Maven以确保这样做.尽管它不能用Oracle JDK和OpenJDK编译,但是我一直在困扰我,因为我认为它可能实际上是我的代码的问题,所以我再次研究它.
我想也许这个bug是在JDT编译器中允许它编译的,而不是Oracle JDK和OpenJDK因为不允许它,我也用它来测试这两个.有问题的原始代码要复杂得多,所以我很难看到问题出在哪里,事实上,我很惊讶地发现在不编译的情况下可以减少这个问题的程度.
Eclipse JDT编译器或Oracle JDK和OpenJDK都有一个非常重要的(imho)错误.
这是相关代码的相当小的表示.(Anything的类型绑定可以被任何接口替换,编译器行为不会改变):
public class Bug<X extends Property<?, ?> & Anything> {
}
interface Property<C, S extends C> extends PropertyConst<C> {
@Override
public S get();
}
interface PropertyConst<C> {
public C get();
}
interface Anything {
}
Run Code Online (Sandbox Code Playgroud)
总而言之,我认为这应该编译得很好,但Oracle JDK 7&8和OpenJDK 7不同意.它使用Eclipse Juno为我编译.
当使用这些编译器中的任何一个编译时,上面的代码给出类似于以下错误的东西,但是对于JDT编译器工作得很好:
Bug.java:3: error: types PropertyConst<?> and Property<?,?> are incompatible; both define get(), but with unrelated return types
public class Bug<X extends Property<?, ?> & Anything> {
^
1 …Run Code Online (Sandbox Code Playgroud) 我有一个 java 进程挂在调用中,IOUtils.toString使用以下代码:
String html = "";
try {
html = IOUtils.toString(someUrl.openStream(), "utf-8"); // process hangs on this line
} catch (Exception e) {
return null;
}
Run Code Online (Sandbox Code Playgroud)
它无法可靠地重现这一点。它是网络爬虫的一部分,因此成功执行了该行数千次,但最终导致该进程在几天后挂起。
jstack 的输出:
2013-09-25 09:09:36
Full thread dump OpenJDK 64-Bit Server VM (20.0-b12 mixed mode):
"Attach Listener" daemon prio=10 tid=0x00007f2b1c001000 nid=0x225a waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Thread-0" prio=10 tid=0x00007f2b34122000 nid=0x187b runnable [0x00007f2b30970000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:146)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
- locked <0x00000000e3d2d160> (a …Run Code Online (Sandbox Code Playgroud) 在7-b147类中的open-jdk 中,com.sun.tools.javac.code.Type我们有以下方法
public boolean isCompound(){
return tsym.completer==null
// Compound types can't have a completer. Calling
// flags() will complete the symbol causing the
// compiler to load classes unnecessarily. This led
// to regression 6180021.
&& (tsym.flags() & COMPOUND)!=0;
}
Run Code Online (Sandbox Code Playgroud)
Java中的复合类型是什么意思?
看起来OpenJDK无法处理unicode-1-1-utf-7?我们该如何解决这个问题?
Caused by: java.io.UnsupportedEncodingException: unicode-1-1-utf-7
at sun.nio.cs.StreamDecoder.forInputStreamReader(StreamDecoder.java:71)
at java.io.InputStreamReader.<init>(InputStreamReader.java:100)
at com.google.code.com.sun.mail.handlers.text_plain.getContent(text_plain.java:109)
Run Code Online (Sandbox Code Playgroud) 我在MacOS上运行Oracle Java 7(OSX 10.7.5)
java -version:
Java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我最近读到了有关DCEVM的内容,我非常好奇地试用它.但是,我对它的兼容性感到困惑.
根据二进制文件下载页面,有OpenJDK Java 7更新51,构建3的二进制文件.我不太确定这与我目前在我的机器上的Java版本有什么关系.
安装JRE是否需要与DCEVM Hotspot版本匹配?我是否需要安装OpenJDK 7_51_3才能使用有问题的DCEVM?或者我可以使用Oracle JRE安装热点VM吗?
我不完全确定JRE/JDK附带的所有实用程序如何与HotSpot VM交互,如果它们都必须具有相同的构建,那么编译后的字节代码应该能够在任何JVM上运行相同的主要版本号.
任何人都可以提供一些有关如何将所有这些组件组合在一起
作为后续,有没有人知道我是否可以找到OSX的OpenJDK兼容版本,我可以在其上运行DCEVM for Java 7 update 51,build 3??
最初我们FileOutputStream在Java中创建了一个OutputStream简单地将数据传输到文件中的方法.
从Java 7开始,我们也可以调用Files.newOutputStream为我们创建一个行为完全相同的Stream(除了"构造函数" - 参数中的细微差别).
至少在OpenJDK 8中,旧FileOutputStream的write方法是作为本机方法实现的,而通过Files.newOutputStream创建的OutputStream 创建一个ByteChannel然后由委托给ByteChannel的OutputStream包装.
第二种方法读取相当复杂,所有包装器调用写入通过.一些天真的性能测试表明,新方法的速度要快一点,但这并不是很多,也很难提及.但是,也许我没有选择最好的用例.
在OpenJDK中基于ByteChannel的新实现背后的原因是什么?速度快吗?是否存在实际上明显更快的情况?为什么?
(我知道这是JRE依赖的,不应该依赖于确切的实现.这主要是对背景的好奇心).
我对JDK本身如何进行测试,其使用的测试引擎感兴趣。
我找到了一些链接:
另外,我想看看如何测试诸如Swing和JavaFX之类的框架。
是否有关于如何执行 / 浏览 JDK测试的手册 / 说明?