我目前正在制作具有缩放和平移功能的阶梯折线图。由于我需要处理的数据量非常大,因此每次调用layoutPlotChildren() 时,我无法重新创建步骤线的整个路径。所以我的想法是创建一次路径元素,然后在缩放和平移事件时对其进行转换。
到目前为止,一切都按计划进行,但是当我尝试扩展路径时遇到了一个大问题。由于 Path 类继承自 Shape,因此 Graph 上的缩放不仅会变换路径的坐标,还会改变其厚度。
我创建了一个最小的工作示例来呈现该问题:
public class Sandbox extends Application
{
@Override public void start(Stage primaryStage)
{
Path path = new Path();
path.getElements().add(new MoveTo(0, 0));
path.getElements().add(new LineTo(100, 0));
path.getElements().add(new LineTo(100, 100));
path.getElements().add(new LineTo(200, 100));
path.setScaleY(3);
Pane pane = new StackPane(path);
Scene scene = new Scene(pane, 800, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,坐标按预期缩放,但所有水平线的粗细都是以前的三倍。我完全理解为什么会发生这种情况,但我想不出任何可能来防止线条变粗。您对如何解决这个问题同时仍然确保可接受的性能有什么建议吗?
我们正在构建一个实时 API,需要保存特定于用户的数据更新。我们正在考虑在表示用户应该获取的数据的聚合上打开一个变更流,并通过 WebSocket 提供该数据。
我找不到有关更改流限制的文档,这意味着 MongoDB 将同时支持多少个打开的更改流,以及是否可以通过向 mongo 添加更多副本来进行扩展。
我们正在谈论数千个开放的变更流。
我已经使用该包安装了混合模型lme4。scale()在拟合模型之前,我用函数转换了自变量。我现在想使用 在图表上显示结果predict(),因此我需要将预测数据恢复到原始比例。我该怎么做呢?
简化示例:
database <- mtcars
# Scale data
database$wt <- scale(mtcars$wt)
database$am <- scale(mtcars$am)
# Make model
model.1 <- glmer(vs ~ scale(wt) + scale(am) + (1|carb), database, family = binomial, na.action = "na.fail")
# make new data frame with all values set to their mean
xweight <- as.data.frame(lapply(lapply(database[, -1], mean), rep, 100))
# make new values for wt
xweight$wt <- (wt = seq(min(database$wt), max(database$wt), length = 100))
# predict from new values
a …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 ggplot 图中使用 geom_line() 绘制 3 条线。其中一个变量具有不同的比例,因此我尝试使用 sec.axis 来显示它。
library(ggplot2)
library(reshape2)
tab <- data.frame(year = seq(1979,2010), freq = runif(32, 212,283), max =
runif(32, 962.1, 993.4), med = runif(32, 972.1, 989.3), min = runif(32,
955.7, 978.3))
summary(tab) # the column freq (frequency) has a different scale comparing with the other ones
Run Code Online (Sandbox Code Playgroud)
我尝试过的一些代码。
tab <- melt(tab, id = c("year")) # melt the data
ggplot(tab, aes(x = year, y = value)) +
theme_bw() +
scale_colour_manual(values =c('red','blue', 'green')) +
geom_line() +
scale_y_continuous(limits = c(900,1000), …Run Code Online (Sandbox Code Playgroud) 我的画布中有一个空白,其中有多个对象作为子对象。随着游戏的进行,更多的子级会添加到父级中。我希望父母能够适应孩子的尺寸。
我已经读了很多关于这个主题的文章,但是每次我遇到 ContentSizeFitter 时,不幸的是它对我不起作用,因为它需要一个布局组,而我没有,因为孩子们没有顺序并且很疯狂放置。
我使用的是Unity 2018.3.4f1个人版。
未调整大小的父级:
父级尺寸(红色:新,绿色:旧):
结构:
Canvas
|- Empty
|- Child 1
|- Child 2
|- Child X
Run Code Online (Sandbox Code Playgroud) 我有一个小脚本(GitHub)(基于这个答案)来检测白色背景上的对象。该脚本工作正常并检测到对象。例如,这张图片:
变成这样:
然后我裁剪boundingRect(红色的)。
我将对这张图片进行进一步的操作。例如,我将只裁剪轮廓,而不是矩形裁剪。(无论如何,这些都是要面对的进一步问题。)
现在我想做的是放大/增长轮廓(绿色)。我不确定在这种情况下规模和增长是否意味着相同的事情,因为当我想到规模时,通常有一个原点/锚点。对于增长,它是相对于边缘的。我想要这样的东西(在 Photoshop 中创建):
因此,在检测到对象/找到轮廓后,我想按某个值/比率来增长它,以便我有一些空间/像素可以修改,这不会影响对象。我怎样才能做到这一点?
提到的脚本:
# drop an image on this script file
img_path = Path(sys.argv[1])
# open image with Pillow and convert it to RGB if the image is CMYK
img = Image.open(str(img_path))
if img.mode == "CMYK":
img = ImageCms.profileToProfile(img, "Color Profiles\\USWebCoatedSWOP.icc", "Color Profiles\\sRGB_Color_Space_Profile.icm", outputMode="RGB")
img = cv2.cvtColor(numpy.array(img), cv2.COLOR_RGB2BGR)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
threshed = cv2.threshold(gray, 240, 255, cv2.THRESH_BINARY_INV)[1]
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (11,11))
morphed = cv2.morphologyEx(threshed, cv2.MORPH_CLOSE, kernel)
contours …Run Code Online (Sandbox Code Playgroud) 我想创建一个具有对数刻度和根据记录数据计算的统计数据的箱线图(以及可能的其他图)。以下示例显示了逻辑。
数据如下:
d1 <- data.frame(x = rchisq(1000, 2), mod = c(rep('a', 500), rep('b', 500)))
Run Code Online (Sandbox Code Playgroud)
如果我预先转换数据,我会获得 y 轴上对数值的图。
plot_ly(d1, y = ~log10(x), color = ~mod, type = 'box')
Run Code Online (Sandbox Code Playgroud)
如果我在创建箱线图后转换 y 轴,我会得到一个箱线图,其中包含原始数据的须线长度和中位数以及 y 轴上对数刻度的原始数据。
plot_ly(d1, y = ~x, color = ~mod, type = 'box') %>%
layout(yaxis = list(type = "log", showgrid=T, ticks="outside", autorange=TRUE))
Run Code Online (Sandbox Code Playgroud)
我理想的结果是上面两张图的组合 - 第一张图片的箱线图和第二张图片的比例。它应该看起来像可以在 ggplot 中执行的操作:
d1 %>% ggplot(aes(y=x, alpha = 0.1, color = mod, fill = mod))+
geom_boxplot()+
scale_y_log10()
Run Code Online (Sandbox Code Playgroud)
我尝试使用 ggploly 将 ggplot 修改为plotly,但它丢失了比例并将其更改为第一张图片的比例。
任何人都可以帮助用plotly制作这样的图,或者如何用ggplotly保留y轴上的对数比例?
使用jquery缩放一些文本,mousemove但无法弄清楚如何使右侧的单词(h2)从固定的右侧位置向左侧缩放。相反,它总是从单词的左边缘开始缩放。
我希望这两个单词组合起来始终填充窗口的宽度,当光标向左移动时,左侧单词(h1)缩小,右侧单词(h2)增大,反之亦然。
还有一个问题是,我使用一些脚本将每个单词缩放到 document.ready 上窗口宽度的 50%,但正确的单词 (h2) 又根据 css 字体大小从其原始位置缩放,因此缩小了这一页。
使用text-align: right没有效果。如何将正确的单词保留在窗口中并向左扩展?jsFiddle
var originwidth = $('h1').width()
var originheight = $('h1').height()
var origh1scalex = $(window).width()/2 / $('h1').width()
var origh2scalex = $(window).width()/2 / $('h2').width()
$(function() {
$('h1').css('transform', 'scaleX(' + origh1scalex + ')');
$('h2').css('transform', 'scaleX(' + origh1scalex + ')');
});
$(document).on('mousemove', function(event) {
var scaleX = event.pageX / originwidth
var scaleY = event.pageY / originheight
$('h1').css('transform', 'scale(' + scaleX + ',' + scaleY + ')')
})
var originwidth …Run Code Online (Sandbox Code Playgroud)我有一个图像,我想在上面放置小图像。我已经有了这些图像相对于原始图像的位置(宽度、高度、topLeftX、topLeftY、bottomRight..)。
我无法相对于图像放置这些小图像(由下面所附示例中的蓝色框表示)。它们始终相对于整个屏幕定位。
这是我尝试过的:
Stack(
children:[
Positioned(
top: 245,
left: 43,
width: 200,height: 200,child:Container(color:Colors.blue)),
Container(
child:PhotoView(imageProvider: AssetImage("lib/assets/3D_example_2.png"),
controller: controller,
)),])
Run Code Online (Sandbox Code Playgroud)
如何相对于图像放置图像(矩形)?我还想相对于原始图像缩放这些图像的宽度和高度,并允许它们在缩放时随原始图像一起移动。
知道如何做到这些吗?
谢谢!
我正在尝试获取我正在创建的Android应用程序的画布坐标.它很有用,直到我添加代码以使用缩放焦点(以下两行):
scalePoint.setX((int) detector.getFocusX());
scalePoint.setY((int) detector.getFocusY());
Run Code Online (Sandbox Code Playgroud)
这是我的视图类的源代码:
package us.kniffin.Jigsaw;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.view.View;
public class TestView extends View {
private float mLastTouchX;
private float mLastTouchY;
private float mPosX;
private float mPosY;
private Rect rect;
private float cX, cY; // circle coords
// Scaling objects
private ScaleGestureDetector mScaleDetector;
private float mScaleFactor = 1.f;
// The focus point for the scaling
private float scalePointX;
private …Run Code Online (Sandbox Code Playgroud)