相关疑难解决方法(0)

使用单击,鼠标移动和单击绘制矩形

我正在尝试通过用户单击,鼠标移动和单击来绘制矩形.我的代码有两个问题.

首先,在绘制一个矩形后,会自动假设将绘制另一个矩形.其次,第二个矩形的起点是创建第一个矩形的最后一次点击.

http://jsbin.com/uqonuw/3/edit

javascript canvas

23
推荐指数
2
解决办法
6万
查看次数

在图像 R 上绘制矩形闪亮

我想详细说明这个问题的公认答案。

我正在考虑使用以下功能改进下面的最小闪亮应用程序(从接受的答案中提取):

  • 1)绘制矩形+文本标签。标签来自 R ( input$foo),例如,来自下拉列表。为避免标签落在图像之外的边缘情况,标签应放置在其矩形内。
  • 2)根据标签为矩形及其标签使用不同的颜色
  • 3) 用户可以通过在矩形内部双击删除它。在多个匹配(重叠、嵌套)的情况下,应删除面积最小的矩形。

布朗尼点数 1):下拉菜单可能会出现在光标旁边,就像这里完成的一样(代码在这里)。如果可能,下拉列表应该从 server.R 传递,而不是固定/硬编码。原因是根据某些用户输入,可能会显示不同的下拉列表。例如,我们可能有一个水果c('banana','pineapple','grapefruit')下拉菜单,一个动物下拉菜单c('raccoon','dog','cat'),等等。

# JS and CSS modified from: https://stackoverflow.com/a/17409472/8099834
css <- "
    #canvas {
        width:2000px;
        height:2000px;
        border: 10px solid transparent;
    }
    .rectangle {
        border: 5px solid #FFFF00;
        position: absolute;
    }
"

js <- 
"function initDraw(canvas) {
    var mouse = {
        x: 0,
        y: 0,
        startX: 0,
        startY: 0
    };
    function setMousePosition(e) …
Run Code Online (Sandbox Code Playgroud)

javascript browser r shiny

12
推荐指数
1
解决办法
1027
查看次数

用户是否可以在R中的图像上交互式绘制矩形(通过Shiny应用程序)

我希望能够在图像上绘制一个矩形。我当时正在考虑使用Shiny制作应用程序,但首先需要弄清楚如何在图像上绘制矩形?有人有任何想法或指示吗?

我的想法是我需要对图像进行分层,我的图像始终为640x640像素,所以我的想法是在图像顶部上方形成一个640x640的矩阵,让我选择“像素”以创建矩形的边界?

图像上方的红色矩形

编辑:我走得更远,现在我可以使用以下代码在有光泽的图像上进行绘制。

由于这些链接:

现在,当我绘制更多矩形时,我需要绘制多个矩形并将结果保留在绘图上。有什么想法吗?

library(shiny)

ui <- basicPage(
    plotOutput("plot1",
               click = "plot_click",
               dblclick = "plot_dblclick",
               hover = "plot_hover",
               brush = "plot_brush"
    ),
    verbatimTextOutput("info")
)

server <- function(input, output) {
    library(jpeg)
    output$plot1 <- renderPlot({
        img <- readJPEG("street_1.jpg", native = TRUE)
        # plot(anImage)
        plot(1:640, type='n')
        rasterImage(img,1,1,640,640)
    }, height = 640, width = 640)

    output$info <- renderText({
        xy_str <- function(e) {
            if(is.null(e)) return("NULL\n")
            paste0("x=", round(e$x, 1), " y=", round(e$y, 1), "\n")
        }
        xy_range_str <- function(e) {
            if(is.null(e)) return("NULL\n")
            paste0("xmin=", round(e$xmin, …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

标签 统计

javascript ×2

r ×2

shiny ×2

browser ×1

canvas ×1