小编Ben*_*Ben的帖子

如何在 JavaFX 中相同地渲染三角形的正面和背面

我开始使用 JavaFX 来可视化 3D 非结构化网格,但我面临渲染问题。

如 [1] 中所示,JavaFX 仅渲染三角形的正面,除非您使用 CullFace.NONE 选项。但后面却是黑色的。

由于 3D 网格是由外部工具(例如 Gmsh http://geuz.org/gmsh/)生成的,因此我无法控制面方向。使用网格的科学软件也不需要定向网格。

因此,我不想随后重新调整网格的方向,只想以相同的方式渲染三角形的正面和背面。JavaFX 8 可以实现这一点吗?如何?

感谢您的回答。

值得注意的是:我也在 Oracle 论坛 [2] 上发布了类似的问题,但它们看起来很空。如果你们中的一些人知道 JavaFX 社区在哪里活跃,那么链接将会很有用。如果我有有用的答案可以分享,我当然会更新这两个线程。

亲切的问候

3D 网格划分的球体

[1]如何理解JavaFX三角形网格?

[2] https://community.oracle.com/thread/3593434

3d rendering javafx

5
推荐指数
1
解决办法
1961
查看次数

如何在Intellij中调试项目同时在另一个项目中设置断点

我在Intellij中加载了一个(基于Maven的)项目A,该项目具有许多依赖性。

我在另一个Intellij项目中具有其中一个依赖项(例如B)的源文件。

我想在B中放置断点并调试项目A,以便在项目B中达到断点时A停止。

在Eclipse中,我只需要将两个项目都放在同一个工作空间中即可工作。由于Intellij中没有工作区,所以我想知道如何做以及是否可行。

debugging intellij-idea

5
推荐指数
2
解决办法
1198
查看次数

如何将list()转换为R中的省略号?

假设我有两个函数使用三个点构造作为参数.

我想检索第一个函数的省略号,并为第二个函数创建一个全新的参数列表.

如何将新创建的列表传递给第二个函数?

这是一个示例代码:

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

r

5
推荐指数
1
解决办法
963
查看次数

如何制作图形颜色取决于ggplot2中的两个标准?

假设我有一个如下定义的数据框:

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)

r ggplot2

5
推荐指数
1
解决办法
698
查看次数

如何在 Windows 上没有管理员权限的情况下安装 RTools

为了构建我的包,我需要在我工作的 Windows 计算机上安装 RTools,但我没有管理员权限。

由于安装程序是一个 .exe 文件,我什至无法打开它(被 Bromium v​​Sentry 阻止)。因此,我无法选择具有写入权限的安装文件夹,因为我什至无法启动安装程序。

我用 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)

r

5
推荐指数
1
解决办法
7092
查看次数

如何在 rmarkdown 中打印 git 历史记录?

我正在用 rmarkdown 编写分析报告,并希望有一个“文档版本”部分,我将在其中指出文档的不同版本和所做的更改。

我没有手动写下来,而是考虑使用 git history 并自动将其插入 Markdown 文档(将其格式化为表格)。

我怎样才能做到这一点?是否可以?

git r knitr r-markdown

5
推荐指数
1
解决办法
674
查看次数

RMarkdown表列名中的Latex数学表达式

我想在我的降价文档中显示一个表,并将列名设置为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表不是一种选择.

latex r knitr r-markdown

5
推荐指数
2
解决办法
2410
查看次数

使用 ForkJoin 和 Streams 构建自适应网格细化

我想在 3D 中构建自适应网格细化。

基本原理如下:

我有一组具有唯一单元 ID 的单元。我测试每个单元,看看它是否需要改进。

  • 如果需要细化,则创建 8 个新的子单元格并将它们添加到单元格列表中以检查细化。
  • 否则,这是一个叶节点,我将其添加到我的叶节点列表中。

我想使用 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)

java concurrency fork-join java-stream

5
推荐指数
1
解决办法
166
查看次数

如何检查 Websocket 连接是否有效

我有一个到服务器的 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)

java websocket java-websocket

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

如何按dplyr中的固定行数分组?

我有一个数据框:

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)

r dplyr

4
推荐指数
1
解决办法
118
查看次数