小编Mik*_*ley的帖子

在VS2010中编译旧C++代码时出现cmath编译错误

我继承了一些C++文件和一个附带的makefile,我试图将其作为解决方案引入VS2010.我创建了一个空项目,并为其中一个makefile目标添加了适当的C++和头文件(.hpp).

但是,当我尝试编译项目时,我立即从cmath获得了大量关于acosf,asinf,atanf等的C2061(语法错误标识符)错误.

cmath中的错误行:

#pragma once
#ifndef _CMATH_
#define _CMATH_
#include <yvals.h>

#ifdef _STD_USING
   #undef _STD_USING
     #include <math.h>
   #define _STD_USING

#else /* _STD_USING */
   #include <math.h>
#endif /* _STD_USING */

#if _GLOBAL_USING && !defined(RC_INVOKED)

_STD_BEGIN
using _CSTD acosf; using _CSTD asinf;
Run Code Online (Sandbox Code Playgroud)

相关C++文件的顶部块(虽然命名为.C):

#include <fstream>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace std;
Run Code Online (Sandbox Code Playgroud)

接下来是main()函数,它不直接调用任何trig函数.这必须是非常明显的事情,但我很想念它.有人可以帮忙吗?

谢谢!

c++ visual-studio-2010 cmath

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

在图像中合并一组矩形的最佳方法是什么?

这不是一个功课问题:)

我有一组散布在图像上的矩形.我想合并(创建一个联合)每组相交的矩形.如果矩形不与其邻居相交,则它保持不变.

问题是合并的矩形可以交叉以前没有考虑过的矩形; 合并的矩形也可以与新合并的矩形相交.我想抓住那些案子.

因此,在我看来,它需要迭代(尝试每个矩形对集合中的每个其他矩形)和递归(再次尝试每个合并的矩形对集合,包括合并的rects).

我怎么能这样做?我在Java工作,但这更像是一个算法问题,而不是面向语言的问题.

谢谢!

编辑:添加相关代码,以更好地说明我现在处理它的糟糕方式.

public static List<BinaryRegion> mergeRegions(List<BinaryRegion> regions)
{
    List<BinaryRegion> merged = new ArrayList<BinaryRegion>();
    geoModel = new GeometryFactory();

    Polygon polys[] = new Polygon[regions.size()];
    for (int i = 0; i < regions.size(); i++)
    {
        Polygon p = convertRectangleToPolygon(regions.get(i)
                .getBoundingBox());
        polys[i] = p;
    }

    System.out.println("Converted " + regions.size() + " polys");

    for (int i = 0; i < regions.size(); i++)
    {
        System.out.println("Sending in poly " + i);
        ArrayList<Polygon> result = mergePoly(polys[i], polys);
        System.out.println("After run, size=" + result.size()); …
Run Code Online (Sandbox Code Playgroud)

algorithm geometry image-processing

8
推荐指数
1
解决办法
5119
查看次数

在MATLAB中获取plot()生成的中间点

我在MATLAB中有一系列XY点对.这些对描述图像中形状周围的点; 它们不是函数,意味着每个x值可能存在两个或更多y点.

我可以使用类似的东西单独绘制这些点

plot(B(:,1),B(:,2),'b+');
Run Code Online (Sandbox Code Playgroud)

我也可以使用情节连接点:

plot(B(:,1),B(:,2),'r');
Run Code Online (Sandbox Code Playgroud)

我正在尝试检索的是我自己的点值,我可以使用它来连接点,以便我可以使用它们进行进一步分析.我不想要一个完全连接的图形,我需要一些基于数据的东西,而不仅仅是plot()产生的图形.我喜欢让plot()生成这些点(因为它似乎在幕后做),但我尝试使用plot()返回的linseries,它或者不能正常工作,因为我理解它或只是没有给我我想要的东西.

我认为这是一个插值问题,但这些点不包含函数; 他们描述了一个形状.基本上,我需要的只是plot()似乎计算的点; 连接一系列点的直线.一条曲线将是一个奖励,可以节省我下游的悲伤.

我怎样才能在MATLAB中做到这一点?

谢谢!

编辑:是的,图片会有帮助:)

蓝点是实际的点值(x,y),使用上面的第一个plot()调用绘制.红色轮廓是使用上面的第二种方法调用plot()的结果.我正在尝试获取红色轮廓的点数据; 换句话说,连接蓝点的点. 替代文字

matlab plot

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

Lucene.net返回正确的查询命中数,但不返回正确的文档

我是Lucene的新手并试图解决这个问题.我的索引是这样的:

        Directory dir = FSDirectory.Open(new System.IO.DirectoryInfo(dirIndexDir));

        //Create the indexWriter
        IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29), true,
            IndexWriter.MaxFieldLength.UNLIMITED);


            Document doc = new Document();

            doc.Add(new Field("keyform_type", entry.keyForm.type, Field.Store.YES, Field.Index.NOT_ANALYZED));
            doc.Add(new Field("keyform_lang", entry.keyForm.lang, Field.Store.YES, Field.Index.NOT_ANALYZED));

                doc.Add(new Field("keyform_dial", entry.keyForm.dial, Field.Store.YES, Field.Index.NOT_ANALYZED));

            doc.Add(new Field("keyform_reg", entry.keyForm.reg, Field.Store.YES, Field.Index.NOT_ANALYZED));
            doc.Add(new Field("keyform_term", entry.keyForm.term.Value, Field.Store.YES, Field.Index.ANALYZED));

                if(entry.refForm.type!=null)
                    doc.Add(new Field("refform_type", entry.refForm.type, Field.Store.YES, Field.Index.NOT_ANALYZED));
                if(entry.refForm.lang!=null)
                    doc.Add(new Field("refform_lang", entry.refForm.lang, Field.Store.YES, Field.Index.NOT_ANALYZED));
                if (entry.refForm.dial != null)
                    doc.Add(new Field("refform_dial", entry.refForm.dial, Field.Store.YES, Field.Index.NOT_ANALYZED));

                if(entry.refForm.reg!=null)
                    doc.Add(new Field("refform_reg", entry.refForm.reg, Field.Store.YES, Field.Index.NOT_ANALYZED));
                if(entry.refForm.term.Value!=null)
                    doc.Add(new Field("refform_term", entry.refForm.term.Value, Field.Store.YES, …
Run Code Online (Sandbox Code Playgroud)

lucene lucene.net

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