小编Nan*_*nik的帖子

查找包含点高效算法的矩形

下午好.

我的情况:

  • 二维空间.
  • 输入:一组矩形(也是重叠的矩形).
    • 矩形坐标是整数类型.
    • 矩形大小和矩形位置有任何限制(仅限整数范围).
    • 任何矩形都没有width = 0或height = 0.
  • 我需要找到:包含输入点的所有矩形(带整数坐标).

查找包含输入点的矩形.

问题:

  • 保持矩形的有效结构是什么?
  • 在这种情况下,哪种算法是有效的?
    • 什么算法只有在没有移除的情况下添加矩形才有效?

谢谢 :-).

algorithm computational-geometry

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

Ifstream - 重置EOF位

我正在和我一起工作ifstream.我读到EOF位置位(我需要这样).

那么为什么不这样做:

// IN is ifstream file. CH is char.

if (IN.eof()) {
    IN.seekg(ios::beg);
    IN.clear();

    if (read((char*)&CH, sizeof(CH)))
        cout << "Succes.";
    else
        cout << "Not S.";    
}
Run Code Online (Sandbox Code Playgroud)

这个read功能随时都没有成功.我尝试使用IN.setstate(ifstream::goodbit),而不是IN.clear()太多.但它是一样的,我是对的吗?

c++ ifstream eof

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

Graphviz - 节点之间的水平边

晚上好,我正在尝试使用graphviz生成图表.

我无法弄清楚如何在某些节点之间建模水平边.我使用下一个代码生成此图:

图形

digraph{ rankdir=LR;
//{rank=same; "[0]"; "[10B1]"; "[62]"; "[8]"; "[9]"; "[10]";}
"[0]"->"[37]"; "[37]"->"[4]"; "[37]"->"[8]";
"[8]"->"[9]"; "[9]"->"[10]"; "[62]"->"[8]";
"[0]"->"[10B1]"; "[10B1]"->"[62]"; "[0]"->"[2]";
"[2]"->"[3]"; "[7]"->"[8]"; "[4]"->"[7]";
}
Run Code Online (Sandbox Code Playgroud)

我想将节点[8],[10B1],[62] [8],[9]和[10]对齐在一条水平线上.

graph dot graphviz

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

Delphi - OleContainer - PowerPoint - 自动播放

下午好:-),在我的应用程序中,我使用OleContainer从 Microsoft Powerpoint查看演示文稿

我用来加载和运行演示文件的代码

with oleContainer do begin
    Parent := mediaPanel; Left := 0; Top := 0;
    Width := mediaPanel.Width; Height := mediaPanel.Height;
    CreateObjectFromFile('C:\Users\Nanik\Desktop\Present.ppt', false);
    Iconic := false; Visible := true; Run;
 end;
Run Code Online (Sandbox Code Playgroud)

该演示文稿已创建为自动播放幻灯片(Microsoft PowerPoint中的工作),但在我的应用介绍的是仍然第一张幻灯片。运行命令不对?

delphi powerpoint autoplay

3
推荐指数
1
解决办法
7584
查看次数

Delphi - 将线程与帧同步

下午好:-),我有一个框架.此框架由Main Form动态创建.

主要形式:

Interface := TInterface.Create(self);
    with handlingInterface do begin
      Parent := Form1;
      Left := 0; Top := 35;
      Width := 570; Height := 250;
    end;
Run Code Online (Sandbox Code Playgroud)

在Frame中我有一个Thread.我从Frame调用这个Thread.为什么我可以将Thread与Frame同步?没有:

var
Form1: TForm1;
Run Code Online (Sandbox Code Playgroud)

在Frame中调用Thread,我想在Frame中更改ProgressBar的位置.我不知道,为什么我可以在Thread的Synchronize方法中访问ProgressBar.

如果是Form中的Thread和ProgressBar - Synchronize访问是Form1.ProgressBar ...

但我在Frame中有Thread和ProgressBar .

forms delphi multithreading frame

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

TListView滚动事件

TListView控件是否有一个事件,只要滚动控件就会触发该事件?

我宁愿不必对TListView控件进行子类化.

delphi listview scroll scrollbar

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

memcpy一个子串

我想试试C memcpy函数.我有这个代码:

char destination[40];
memcpy(destination, "My favorite destination is...", 11);
printf(destination);
Run Code Online (Sandbox Code Playgroud)

我想将前11个字母复制到目标数组.当我使用printf时,结果是"我最喜欢的2".为什么?

c substring memcpy

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

找到一条线末端位置的有效方法

我正在使用C++ ifstream和文本文件.我正在寻找每行结尾的位置,因为我需要n从行尾读取字符.

目前,我正在读取每个字节并测试它是否对应于Unix换行符(LF).

不幸的是,输入通常是长文本,我的方法并不快.

有没有更快的方法?

c++ ifstream end-of-line

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

C - 双精度求和

我有双格式精度的问题.


示例示例:

double K=0, L=0, M=0;
scanf("%lf %lf %lf", &K, &L, &M);
if((K+L) <= M) printf("Incorrect input");
else printf("Right, K=%f, L=%f, M=%f", K, L, M);
Run Code Online (Sandbox Code Playgroud)

我的测试输入:

K = 0.1,L = 0.2,M = 0.3 - >条件但是转到'else'语句.


我怎么能纠正这种差异?还有其他方法可以求和吗?

c precision double

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