何时使用翻译和重新定位以移动节点?在一天结束时,似乎他们做了同样的事情(视觉上); 移动节点; 第一个是通过对原点进行平移(x,y保持不变),第二个是通过改变x,y坐标.所以假设我想在屏幕的特定点移动一个节点..我应该使用node.relocate(x,y)还是node.setTranslateX(x),node.setTranslateY(y)?
为了说明我的意思,我制作了一个你可以玩的示例程序:屏幕上的一个矩形,其位置由4个滑块确定(其中2个控制布局x,y其他两个控制转换x,y).
/* imports are missing */
public class TransReloc extends Application{
@Override
public void start(Stage primaryStage) throws Exception {
Group root = new Group();
Rectangle rect = new Rectangle(100, 50, Color.BLUE);
root.getChildren().add(rect);
VBox controlGroup = new VBox();
Slider relocX = new Slider(-100, 100, 0 );
Slider relocY = new Slider(-100, 100, 0 );
Slider transX = new Slider(-100, 100, 0 );
Slider transY = new Slider(-100, 100, 0 );
rect.layoutXProperty().bind(relocX.valueProperty());
rect.layoutYProperty().bind(relocY.valueProperty());
rect.translateXProperty().bind(transX.valueProperty());
rect.translateYProperty().bind(transY.valueProperty());
controlGroup.getChildren().addAll(relocX, relocY, transX, transY); …Run Code Online (Sandbox Code Playgroud) 我无法理解唐纳德约翰逊发表的关于在图表中查找周期(电路)的论文的某些部分.
更具体的是我无法理解伪代码的以下行中提到的矩阵Ak是什么:
Ak:=由{s,s + 1,...... n}引起的G子图中具有最小顶点的强分量K的邻接结构;
为了让事情变得更糟,有些线路是"为了我在Vk做"而没有声明Vk是什么......
据我所知,我们有以下几点:1)一般来说,强组件是图的子图,其中对于该子图的每个节点,都有到子图的任何节点的路径(换句话说,您可以从子图的任何其他节点访问子图的任何节点)
2)由节点列表引起的子图是包含所有这些节点以及连接这些节点的所有边的图.在文中,数学定义是"F是由W引起的G的子图,如果W是V的子集,并且F =(W,{u,y)| u,W在W中,而y(y,y)在E中)})其中u,y是边,E是图中所有边的集合,W是一组节点.
3)在代码实现中,节点由整数1 ... n命名.
4)我怀疑 Vk是强组件K的节点集.
现在回答这个问题.假设我们有一个图G =(V,E),其中V = {1,2,3,4,5,6,7,8,9},它可以分为3个强组分,SC1 = {1, 4,7,8} SC2 = {2,3,9} SC3 = {5,6}(及其边缘)
任何人都可以给我一个s = 1,s = 2,s = 5的例子,如果根据代码将成为Vk和Ak怎么办?
伪代码是我之前在Donald B. Johnson算法中理解伪代码的问题
这篇论文可以在唐纳德·约翰逊的算法中理解伪代码中找到
先感谢您
我写了以下演示程序.每个包含一个Text节点的四个HBox将添加到根(组)中.第一个和最后一个是动画的时间轴,以交换他们的位置.所有的HBox都具有相同的CSS风格.
结果是"每秒帧数"非常低的动画.我有一个双核E7400 2.8Ghz Cpu.一个核心100%使用.我期望计算在GPU中完成.删除大部分CSS(特别是阴影效果)后,动画变得更加平滑.在我有更好的表现的同时,为了保持视觉效果,我能做些什么吗?使用css来装饰要动画的节点是不是一种不好的做法?
我还使用-Dprism.verbose = true来检查硬件加速是否打开.一切似乎都好
Prism pipeline init order: d3d sw
Using platform text rasterizer
Using native-based Pisces rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.d3d.D3DPipeline
Loading D3D native library ...
succeeded.
D3DPipelineManager: Created D3D9 device
Direct3D initialization succeeded
(X) Got class = class com.sun.prism.d3d.D3DPipeline
Initialized prism pipeline: com.sun.prism.d3d.D3DPipeline
Maximum supported texture …Run Code Online (Sandbox Code Playgroud) 我遇到了一个问题,我无法找到解决方案.我正在使用HashSet来存储值.我存储的值是自定义类型Cycles,其中我已重写HashCode并等于如下,以确保缓慢的性能不受hascode或相等方法的影响我还将hashset的初始容量设置为10.000 .000
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (int) (cycleId ^ (cycleId >>> 32));
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Cycle other = (Cycle) obj;
if (cycleId != other.cycleId)
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
在第一个1.500.000第一个值之后,当我尝试添加一个新值(使用HashSet类的add方法)时,程序非常慢.最终我将在存储的值达到1.600.000之前让java内存异常(线程中的异常"Thread-0"java.lang.OutOfMemoryError:Java堆空间)
我使用的IDE是Eclipse.所以下一步是将JVM堆大小从默认值增加到1千兆(使用commnads Xmx1000M和Xms1000M)现在,elipse以可用内存的10倍开始(我可以看到右下角的总堆大小)显示内存和使用的内存)但同样我有相同的"慢"性能和相同的内存错误在相同的值(之前的1.500.000和1.600.000之前)非常奇怪.
有谁知道它可能是什么问题?
先感谢您
有没有人知道Donald B. Johnson的算法,它列举了有向图中的所有基本电路(周期)?
我有他在1975年发表的论文,但我无法理解伪代码.
我的目标是用Java实现这个算法.
例如,我所遇到的一些问题是它所指的矩阵A k是什么.在伪代码中,它提到了这一点
Ak:=adjacency structure of strong component K with least
vertex in subgraph of G induced by {s,s+1,....n};
Run Code Online (Sandbox Code Playgroud)
这是否意味着我必须实现另一种找到A k矩阵的算法?
另一个问题是以下是什么意思?
begin logical f;
Run Code Online (Sandbox Code Playgroud)
这条线是否"logical procedure CIRCUIT (integer value v);"意味着电路程序返回一个逻辑变量?在伪代码中也有" CIRCUIT := f;" 行.这是什么意思?
如果有人能将这个1970年代的伪代码翻译成更现代的伪代码,那将是很棒的,所以我能理解它
如果您有兴趣提供帮助但找不到纸张,请发送电子邮件至pitelk@hotmail.com,我会将纸张发给您.
为什么下面的代码产生一个对象而不是一个列表?
Object listWithoutGeneric = new ArrayList().stream().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
(尝试替换 Object listWithoutGeneric = ... with List listWithoutGeneric = ... 产生编译错误)
而以下示例返回一个列表?
List listWithDefaultGeneric = new ArrayList<>().stream()
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud) 我偶然发现了以下问题:
我想在组件的插入符号的位置读取JTextComponent文档中的字符.当我使用JTextPane时,在插入符号位置返回的字符不正确.更详细地说,返回的字符是字符是插入符号的位置减去行的数量!(插入位置 - 当前行的编号).另一方面,当我使用JTextArea时,结果是正确的......为了证明这一点,我已经实现了一个可以使用的示例程序.
所以最大的问题是,在JTextPane的情况下,如何获得插入符号的位置?
为什么JTextPane不会返回与JTextArea相同的插入位置,还有更多为什么JTextPane返回的字符不是我们在屏幕上看到的字符?描述的行为是错误的吗?
您可以在下面找到示例程序的代码以及非常有趣和意外结果的屏幕截图
使用JTextPane.CARET职位17中的字母是e.不...
alt text http://img405.imageshack.us/img405/2746/jtextpane.jpg
使用JTextArea.在这里,我的插入符号与之前的位置相同,但现在我得到插入位置20,返回字母是\ r \n(与预期的一个).
alt text http://img809.imageshack.us/img809/5323/jtextarea.jpg
以下是您可以使用的代码来查看这种奇怪的行为:
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.event.*;
public class Example extends JFrame {
// use this instead of JTextPane to see the difference
// JTextComponent testingArea = new JTextArea(5,10);
JTextComponent testingArea = new JTextPane();
JButton button = new JButton("test");
JTextComponent resultArea = new JTextField(20);
public Example() {
initialise();
testingArea.setText("line1\r\nline2\r\nline3\r\nline4");
}
private void initialise() {
testingArea.setPreferredSize(new Dimension(100,100));
setLayout(new FlowLayout());
getContentPane().add(testingArea); …Run Code Online (Sandbox Code Playgroud)