我开始使用 JavaFX 来可视化 3D 非结构化网格,但我面临渲染问题。
如 [1] 中所示,JavaFX 仅渲染三角形的正面,除非您使用 CullFace.NONE 选项。但后面却是黑色的。
由于 3D 网格是由外部工具(例如 Gmsh http://geuz.org/gmsh/)生成的,因此我无法控制面方向。使用网格的科学软件也不需要定向网格。
因此,我不想随后重新调整网格的方向,只想以相同的方式渲染三角形的正面和背面。JavaFX 8 可以实现这一点吗?如何?
感谢您的回答。
值得注意的是:我也在 Oracle 论坛 [2] 上发布了类似的问题,但它们看起来很空。如果你们中的一些人知道 JavaFX 社区在哪里活跃,那么链接将会很有用。如果我有有用的答案可以分享,我当然会更新这两个线程。
亲切的问候

我在Intellij中加载了一个(基于Maven的)项目A,该项目具有许多依赖性。
我在另一个Intellij项目中具有其中一个依赖项(例如B)的源文件。
我想在B中放置断点并调试项目A,以便在项目B中达到断点时A停止。
在Eclipse中,我只需要将两个项目都放在同一个工作空间中即可工作。由于Intellij中没有工作区,所以我想知道如何做以及是否可行。
假设我有两个函数使用三个点构造作为参数.
我想检索第一个函数的省略号,并为第二个函数创建一个全新的参数列表.
如何将新创建的列表传递给第二个函数?
这是一个示例代码:
first.function <- function(..., name) {
argument.list <- list(...)
new.args <- list()
for (i in 1:length(argument.list)) {
new.args[[i]] <- argument.list[[i]]^2
}
new.args[[length(new.args) + 1]] <- name
do.call(second.function, new.args)
}
second.function <- function(..., name) {
print(paste("This is the name:", name))
print(paste("These are the arguments:", ...))
}
first.function(1, 2, 3, name = "Test")
Run Code Online (Sandbox Code Playgroud)
我尝试使用do.call,但是我有一条错误消息:
粘贴错误("这是名称:",名称):缺少参数"name",没有默认值
这是因为第二个函数不能将name参数识别为省略号参数的单独参数.
预期的结果是:
这就是名字:Test
这些是争论:1,4,9
假设我有一个如下定义的数据框:
x <- seq(0, 10, by = 0.1)
y1 <- sin(x)
y2 <- cos(x)
y3 <- cos(x + pi / 4)
y4 <- sin(x + pi / 4)
df1 <- data.frame(x, y = y1, Type = as.factor("sin"), Method = as.factor("method1"))
df2 <- data.frame(x, y = y2, Type = as.factor("cos"), Method = as.factor("method1"))
df3 <- data.frame(x, y = y3, Type = as.factor("cos"), Method = as.factor("method2"))
df4 <- data.frame(x, y = y4, Type = as.factor("sin"), Method = as.factor("method2"))
df.merged <- rbind(df1, df2, …Run Code Online (Sandbox Code Playgroud) 为了构建我的包,我需要在我工作的 Windows 计算机上安装 RTools,但我没有管理员权限。
由于安装程序是一个 .exe 文件,我什至无法打开它(被 Bromium vSentry 阻止)。因此,我无法选择具有写入权限的安装文件夹,因为我什至无法启动安装程序。
我用 Google 搜索了它,但找不到 RTools 的便携式版本或我可以解压缩的 zip。有谁知道它是否存在,如果不存在,构建我的包的方法是什么?
编辑:
作为对 Hong Ooi 答案的补充,我确实必须手动更新我的 PATH 变量,以便 RStudio 找到 RTools。要设置的 PATH 没有在任何官方文档中记录,因此我从此处复制并改编了 PATH 。我的版本是:
C:\Unsupported\Rtools\bin;C:\Unsupported\Rtools\gcc-4.6.3\bin;C:\Unsupported\Rtools\perl\bin;C:\Unsupported\Rtools\MinGW\bin;C:\Unsupported\R\R-3.3.2\bin\x64;C:\Unsupported\R\R-3.3.2\bin
Run Code Online (Sandbox Code Playgroud) 我正在用 rmarkdown 编写分析报告,并希望有一个“文档版本”部分,我将在其中指出文档的不同版本和所做的更改。
我没有手动写下来,而是考虑使用 git history 并自动将其插入 Markdown 文档(将其格式化为表格)。
我怎样才能做到这一点?是否可以?
我想在我的降价文档中显示一个表,并将列名设置为Latex数学公式,例如$\dot(m)_1 $.
我试过这个:
knitr::kable(my.df[, c("Time", "MassFlowRate")],
row.names = FALSE,
col.names = c("Time", "$\dot{m}_1$"))
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我最终没有生成PDF,而是生成Word文档.因此,直接编码Latex表不是一种选择.
我想在 3D 中构建自适应网格细化。
基本原理如下:
我有一组具有唯一单元 ID 的单元。我测试每个单元,看看它是否需要改进。
我想使用 ForkJoin 框架和 Java 8 流来实现它。我读了这篇文章,但我不知道如何将其应用到我的案例中。
现在,我想到的是:
public class ForkJoinAttempt {
private final double[] cellIds;
public ForkJoinAttempt(double[] cellIds) {
this.cellIds = cellIds;
}
public void refineGrid() {
ForkJoinPool pool = ForkJoinPool.commonPool();
double[] result = pool.invoke(new RefineTask(100));
}
private class RefineTask extends RecursiveTask<double[]> {
final double cellId;
private RefineTask(double cellId) {
this.cellId = cellId;
}
@Override
protected double[] compute() {
return ForkJoinTask.invokeAll(createSubtasks())
.stream()
.map(ForkJoinTask::join)
.reduce(new double[0], new Concat()); …Run Code Online (Sandbox Code Playgroud) 我有一个到服务器的 websocket 连接:
import javax.websocket.*;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@ClientEndpoint
public class WebsocketExample {
private Session userSession;
private void connect() {
try {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
container.connectToServer(this, new URI("someaddress"));
} catch (DeploymentException | URISyntaxException | IOException e) {
e.printStackTrace();
}
}
@OnOpen
public void onOpen(Session userSession) {
// Set the user session
this.userSession = userSession;
System.out.println("Open");
}
@OnClose
public void onClose(Session userSession, CloseReason reason) {
this.userSession = null;
System.out.println("Close");
}
@OnMessage
public void onMessage(String message) {
// …Run Code Online (Sandbox Code Playgroud) 我有一个数据框:
set.seed(123)
x <- sample(10)
y <- x^2
my.df <- data.frame(x, y)
Run Code Online (Sandbox Code Playgroud)
结果是这样的:
> my.df
x y
1 3 9
2 8 64
3 4 16
4 7 49
5 6 36
6 1 1
7 10 100
8 9 81
9 2 4
10 5 25
Run Code Online (Sandbox Code Playgroud)
我想要的是每n行对行进行分组,以计算均值,总和或5个选定行上的任何值。对于n = 5这样的事情:
my.df %>% group_by(5) %>% summarise(sum = sum(y), mean = mean(y))
Run Code Online (Sandbox Code Playgroud)
预期的输出将类似于:
# A tibble: 1 x 2
sum mean
<dbl> <dbl>
1 174 34.8
2 211 …Run Code Online (Sandbox Code Playgroud)