小编Yuk*_*ita的帖子

从mousemove上的背景图像中删除模糊效果

我想要达到这里使用的效果:Canva注册页面

值得庆幸的是,他们已经给出了一些实现这种效果的步骤:五种视觉效果

这是我到目前为止所取得的成就:

var canvas, ctx,
  prevX = 0,
  currX = 0,
  prevY = 0,
  currY = 0;

function init() {
  canvas = document.getElementById('log');
  ctx = canvas.getContext("2d");
  ctx.canvas.width = window.innerWidth;
  ctx.canvas.height = window.innerHeight



  canvas.onmousemove = function(e) {

    currX = e.pageX;
    currY = e.pageY;
    ctx.beginPath();
    ctx.moveTo(prevX, prevY);
    ctx.lineTo(currX, currY);
    ctx.lineCap = "round";
    var d = distance(prevX, prevY, currX, currY);
    var w = 80 / d;
    ctx.lineWidth = w;
    ctx.stroke();
    prevX = currX;
    prevY = currY;
  }

}


function distance(x1, …
Run Code Online (Sandbox Code Playgroud)

html javascript canvas

9
推荐指数
1
解决办法
141
查看次数

将数字列表分为两组,以便一组中的数字与另一组中的数字没有任何共同的因素

我必须将数字列表分为两组,以便一组中没有数字的因数也等于第二组中任何数字的因数。我认为我们只需要找出分组,使得每个分组中数字乘积的GCD为1。例如,

如果我们有列表2,3,4,5,6,7,9,则可能的组为-

(2,3,4,6,9)(5,7)(2,3,4,5,6,9)(7)(2,3,4,6,7,9)(5)

我最初想做的是-

  1. 生成一个素数列表,直到列表中的最大数量。
  2. 将列表中的所有元素除以每个质数一一,如果数字不能被质数整除,则将0分配给列表,如果将其整除则将1分配给列表。
  3. 对所有素数重复此操作,从而得到零和一的矩阵。
  4. 从第一个素数开始,将所有具有1的元素放入一组。
  5. 如果两个组具有相同的元素,则将这些组合并为一个组。
  6. 计算可以组合这些组的可能方法的数量,我们完成了。

在前面的示例中,算法看起来像这样-

  1. 素数列表= [2,3,5,7]
  2. 分割后,矩阵看起来像这样-

在此处输入图片说明

  1. 组=(2,4,6),(3,6,9),(5),(7)
  2. 已加入的组=(2,3,4,6,9),(5),(7)
  3. 最后,加入是容易的部分,因为我只需要几种可以组合的方式即可。

我认为该算法有效,但是是解决此问题的非常不好的方法。我可以将素数硬编码为一个大数,然后找到最接近我的最大数的素数,这可能会使其更快,但是如果元素的数量约为10E6或更多,它仍然涉及过多的除法。我在想也许有更好的方法来解决这个问题。也许我缺少一些数学公式,或者一些可以减少迭代次数的小逻辑。

我的问题是关于算法的,因此伪代码也可以使用,我不需要完成的代码。但是,我对Python,Fortran,C,BASH和Octave感到很满意,因此使用这些语言的答案也将有所帮助,但是正如我所说的,语言并不是这里的重点。

而且我想我可能不了解一些可能会使我的问题变得更好的术语,因此也希望对重新措词有所帮助。

python algorithm math

7
推荐指数
1
解决办法
443
查看次数

围绕其中心旋转svg元素

我有一个SVG图像,其中有一些我要围绕其自身中心(圆心)旋转的圆。但是,当我设置transform-origin:center,然后应用变换时,它开始围绕整个SVG图像的中心旋转。有什么方法可以设置变换原点,以使圆围绕自己的中心旋转吗?

这是原始的svg图像(我不能在此处粘贴原始代码):SVG图像

这是为此的jsfiddle:https ://jsfiddle.net/g9zfcdm3/3/

图像中有4个圆圈。只要有一个小组就能做到这一点就足够了。我真正想要实现的是对这些圆进行动画处理,以使它们围绕自己的中心无限地旋转。

html css svg

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

在图中找到具有最大节点值的集团

我有一个分配有一定值的节点图。我希望在图中找到具有最大节点总数的集团(注意不一定是最大集团)

我想到的一种方法是贪婪算法,该算法是:

  1. 从图中选择最大的节点
  2. 选择最大的下一个节点,以便在节点总数增加时将其连接到所有先前选择的节点。
  3. 重复2,直到总和不再增加

但是,这种方法不会导致正确性,因为您可以想象一个图,其中包含一个8个节点,所有节点的值均为1,单个节点的值为7。这里的正确答案是8,而不是7。我的实际问题很复杂图,但以下是一些实际结果和最大笔数的期望结果的示例,这些是我手动找到的:

在此处输入图片说明 在此处输入图片说明

这是解决方案的一个简单示例:

在此处输入图片说明在此处输入图片说明

不带库的 python中选择的表示形式中,在任意图上使用任意图在python中解决此问题的最佳图形表示形式是什么?

python graph-theory data-structures python-3.x

5
推荐指数
0
解决办法
66
查看次数

将命令行输出保存到Fortran中的变量

有没有办法将命令行实用程序的输出存储到Fortran中的变量?

我有一个基于BASH的实用程序,它给了我一个需要在Fortran程序中使用的数字.我想通过程序本身调用该实用程序,并尽可能避免将输出写入文件.

这样的事可能吗?

integer a
write(a,*) call execute_command_line('echo 5')
Run Code Online (Sandbox Code Playgroud)

或者像这样呢?

read(call execute_command_line('echo 5'),*) a
Run Code Online (Sandbox Code Playgroud)

我不认为这些都是正确的.我想知道是否有一种方法可以做到这一点.我阅读了文档,execute_command_line但我不认为子例程有一个输出参数.

fortran gfortran

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

在不使用循环的情况下在 fortran 中用零填充数组

我有两个数组,我想比较它们的大小并将尾随零添加到较短的数组。

例如-对于数组-

y1=(/ 1,2,3 /)
y2=(/ 1,2,3,4,5 /)
Run Code Online (Sandbox Code Playgroud)

最后的结果应该是——

y1=(/ 1,2,3,0,0 /)
y2=(/ 1,2,3,4,5 /)
Run Code Online (Sandbox Code Playgroud)

我对 Fortran 很陌生,据我所知,到目前为止,可以这样做:-

integer, allocatable :: y1(:),y2(:)
integer :: l1,l2,i
.
.
.
! some code to generate y1 and y2 here
.
.
.
l1=size(y1)
l2=size(y2)

if (l1>l2) then
    do i=l2+1,l1
        y2(i)=0
    enddo
else if (l2>l1) then
    do i=l1+1,l2
        y1(i)=0
    enddo
endif
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来做到这一点,最好是不涉及循环的方法,因为我正在处理的实际问题可能有很大的向量

fortran gfortran fortran90 fortran95

2
推荐指数
1
解决办法
431
查看次数

从Fortran中的数组中删除索引值之后的所有行

我想要一个数组从Fortran中的数组中删除某个索引值之后的所有行.这意味着如果数组的大小最初是p,它应该变为q,其中q是索引,之后将删除所有内容.

以下是相关的代码:

real(8), allocatable :: circlesx(:),circlesy(:)
allocate(circlesx(n**2-n))
allocate(circlesy(n**2-n))

do i=1,n-1
    do j=i+1,n
        call intersect2circles(stlo(i),stla(i),distance(i),stlo(j),stla(j),distance(j),ax,ay,bx,by,flag)
        if (flag==0) then
            circlesx(k)=ax
            circlesy(k)=ay
            circlesx(k+1)=bx
            circlesy(k+1)=by
            k=k+2
        endif
    enddo
enddo
Run Code Online (Sandbox Code Playgroud)

该标志基本上检查两个圆是否相交.因此,如果没有交集,没有值被分配给阵列circlesxcirclesy.我首先分配的数组的大小是n个圆=的最大交点数n^2-n.如果我不分配它,我会遇到分段错误.

重塑也没有用,虽然我可能在那里做错了.这给出了一个无法分类的陈述错误: -

reshape(circlesx,[ n**2-n-1 ])
Run Code Online (Sandbox Code Playgroud)

我希望圆圈数组的大小k-2在循环完成后更改为

所以我需要的是,如果n = 2,那么circlex和circley的大小为2,那么,

circlesx=[0,0]
.
.
some calculations
.
.
circlesx=[1.2,0] ! only one value has been allocated
.
.
reshape the array accordingly
.
.
circlesx=[1.2]
Run Code Online (Sandbox Code Playgroud)

在Fortran有什么办法吗?我正在使用f90文件扩展名并使用gfortran v7.3.0

arrays fortran

2
推荐指数
1
解决办法
86
查看次数

自动化DOSbox应用程序

我有一个非常旧的DOS应用程序,我想自动化.就像有按键等,如果自动化会有很多帮助,因为我可能需要手动运行程序一百多次.

我的问题似乎与这个问题非常相似,但那里提供的解决方案对我来说并不是很有用,而且它已经超过九年了

使用Python自动化旧的DOS应用程序

这个问题与我的唯一不同之处在于除了DOSbox之外我没有选择这样做.这个应用程序是在很多计算机上设置的,所有使用该应用程序的人都知道如何使用DOSBox.迁移到Virtualbox将是一件痛苦而且非常耗时的事情.

我想也许我可以使用xautomaton或uinput在python中以某种方式机械化这个,但我还没弄清楚究竟是怎么做的.该应用程序将主要在Ubuntu上运行.

为了了解该应用程序,我附上了一个截图:

截图

解决方案不一定需要在python中.任何其他语言都可以.任何帮助表示赞赏.

python bash dos dosbox

2
推荐指数
1
解决办法
88
查看次数

BASH 回声显示一些异常行为

这是给我带来问题的简单命令 -

echo hafsda sfsdfdsfs $ymn $ymx $range
Run Code Online (Sandbox Code Playgroud)

此命令的输出即将到来 -

 2.568 sfsdfdsfs 86.72
Run Code Online (Sandbox Code Playgroud)

哪里ymn = 86.72 ymx = 89.28range = 2.56。这仅在我使用变量时发生。以下命令工作正常 -

echo hafsda sfsdfdsfs 1 2 $range
Run Code Online (Sandbox Code Playgroud)

此外,如果我尝试直接在终端中运行相同的命令(第一个),则它可以正常工作。这只是一个脚本。我也尝试使用 printf 但遇到了类似的结果。

我什至不明白用谷歌来解决这个问题。我根本无法理解发生了什么。那么,这里发生了什么?这是可重现的还是只是我系统上的一些错误,如果是,可能是什么问题?

bash

0
推荐指数
1
解决办法
42
查看次数