我能够使用data.tree包来生成一个图。这是一个情节的例子:
library(data.tree)
org <- Node$new("Parent")
org$AddChild("Child_1")
org$AddChild("Child_2")
plot(org)
Run Code Online (Sandbox Code Playgroud)
但是,我无法在 R-Shiny 中渲染此图。我已经能够在 Shiny 中渲染大多数其他图。我能做些什么来渲染这个图,为什么它不显示?这是我的闪亮代码:
library(shiny); library(data.tree)
ui <- fluidPage(
mainPanel(plotOutput("orgplot") )
)
server <- function(input, output){
rv <- reactiveValues()
org <- Node$new("Parent")
org$AddChild("Child_1")
org$AddChild("Child_2")
output$orgplot <- renderPlot({ plot(org)})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud) 我的最终目标是以 60 fps 渲染 100 万个不同大小和颜色的球体。我也希望能够在屏幕上移动相机。
我已经修改了我正在学习的教程的此页面上的代码,以尝试对许多球体进行实例化。然而,我发现在 64 个球体时,我的 fps 低于 60,而在 900 个球体时,我的 fps 是微不足道的 4。我对实例化的理解很幼稚,但我相信我应该每秒获得更多帧数这个。只有 64 个球体应该可以达到 60 fps。我相信,在某种程度上,我导致 CPU 和 GPU 的通信频率高于它们应有的频率。所以我的问题是:如何在不导致 fps 降低(理想情况下为 60 fps)的情况下实例化这么多对象(最好是数百万个)?
我通过(10 / time_elapsed)每 10 帧计算一次来计算 fps ,这time_elapsed是自上次 fps 调用以来经过的时间。我正在使用printf我的代码的第 118 行打印出来。
我一直在通过本教程学习 OpenGL ,因此我在 Visual Studio 2013 中使用了32 位 GLEW和32 位 GLFW。我在 64 位操作系统(Windows 7)上有 8 GB 的 RAM 和2.30 GHz CPU。
我已经尝试根据上面的教程编写自己的示例。源代码:
(将第 2 …
我正在寻找一种方法,在为方程中的变量赋值之前,将多个数学函数加在一起.
我这样做是因为我需要优化我的代码,并且我希望每次都为变量分配不同的值.我想要做的一个例子:
f(x, y) = x + 2y
g(x, y) = 3x - y
增加f(x, y) + g(x, y)得到h(x, y),所以f(x, y) + g(x, y) = h(x, y) = 4x + y
现在我有h(x, y),我需要多个值h(x, y)
x = 4; y = 3, h(x, y) = 19
x = 1, y = 0, h(x, y) = 4
Run Code Online (Sandbox Code Playgroud)
等等
这可能吗?我试图将它们创建为字符串,添加字符串,然后删除引号以评估总和,但这不起作用.我试图以这种方式做我的方法,因为我想优化我的代码.如果我能够在评估它之前创建我的最终函数(h(x, y)在这种情况下就是这样),那将非常有帮助.
编辑:我正在添加(e**(x + y)),所以使用矩阵的线性解决方案不起作用:/
numpy我正在尝试对整数(特别是对象)进行位移numpy.uint64,并且我需要它们很快。在下面的实现中,我将对象放入numpy.arrayonly 中,因为这是唯一可以接受位左移的对象。如果有更快的实施,我会接受。
from timeit import timeit
print(timeit("a << 1", "a = int(2**60)"))
print(timeit("a << 1", "import numpy as np; a = np.array([2 ** 60], dtype=np.uint64)"))
print(timeit("np.left_shift(a, 1)", "import numpy as np; a = np.array([2 ** 60], dtype=np.uint64)"))
Run Code Online (Sandbox Code Playgroud)
返回:
0.056681648000000084
1.208092987
1.1685176299999998
Run Code Online (Sandbox Code Playgroud)
为什么 python 比这个操作快得多numpy?有没有办法获得可比较的速度numpy?
我已经确定了我的c ++代码中的瓶颈,我的目标是加速它.如果条件为真,我将项目从一个向量移动到另一个向量.
在python中,这样做的pythonic方法是使用列表理解:
my_vector = [x for x in data_vector if x > 1]
Run Code Online (Sandbox Code Playgroud)
我已经破解了一种在C++中执行此操作的方法,并且它运行正常.但是,我在一个while循环中调用了数百万次,而且速度很慢.我对内存分配了解不多,但我认为我的问题与使用重新分配内存有关push_back.有没有办法以不同的方式分配我的内存来加速这段代码?(我不知道my_vector在for-loop完成之前应该有多大).
std::vector<float> data_vector;
// Put a bunch of floats into data_vector
std::vector<float> my_vector;
while (some_condition_is_true) {
my_vector.clear();
for (i = 0; i < data_vector.size(); i++) {
if (data_vector[i] > 1) {
my_vector.push_back(data_vector[i]);
}
}
// Use my_vector to render graphics on the GPU, but do not change the elements of my_vector
// Change the elements of data_vector, but not the …Run Code Online (Sandbox Code Playgroud)