我继承了一些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函数.这必须是非常明显的事情,但我很想念它.有人可以帮忙吗?
谢谢!
这不是一个功课问题:)
我有一组散布在图像上的矩形.我想合并(创建一个联合)每组相交的矩形.如果矩形不与其邻居相交,则它保持不变.
问题是合并的矩形可以交叉以前没有考虑过的矩形; 合并的矩形也可以与新合并的矩形相交.我想抓住那些案子.
因此,在我看来,它需要迭代(尝试每个矩形对集合中的每个其他矩形)和递归(再次尝试每个合并的矩形对集合,包括合并的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) 我在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()的结果.我正在尝试获取红色轮廓的点数据; 换句话说,连接蓝点的点.
我是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)