小编Ste*_*eve的帖子

不规则多边形的有效包装算法

我正在寻找一种打包算法,它将不规则多边形缩小为矩形和直角三角形.该算法应该尝试使用尽可能少的这种形状,并且应该相对容易实现(考虑到挑战的难度).在可能的情况下,它还应该优先考虑三角形的矩形

如果可能,这个问题的答案应该解释建议算法中使用的一般启发式方法.

对于小于100个顶点的不规则多边形,这应该在确定的时间内运行.

目标是为外行人产生不规则多边形的"合理"分解.

应用于解决方案的第一个启发式算法将确定多边形是规则的还是不规则的.在正多边形的情况下,我们将使用我的类似文章中关于常规多边形的方法:正则多边形的有效填充算法

alt text http://img401.imageshack.us/img401/6551/samplebj.jpg

algorithm math tesselation computational-geometry

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

使用其他Const Struct实例初始化Const Struct

我很好奇为什么下面的代码片段无法编译:

typedef struct Foo {
    int a;
    int b;
} Foo;

static const Foo FooZero = { 0, 0 };

typedef struct Bar {
    Foo foo;
    int c;
} Bar;

static const Bar BarZero = { FooZero, 0 };
Run Code Online (Sandbox Code Playgroud)

它抱怨使用FooZero,说明FooZero不是Compile-Time Constant

但不是吗?我在这里不理解什么?

显然,我可以简单地替换FooZero初始化程序中的用法{ 0, 0 }- 我的目的是提出问题不是如何解决问题 - 我试图理解其根本原因FooZero不是,实际上是编译时常量.

谢谢

c struct initialization

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

如何将数据从托管程序集流式传输到本机库并再次返回?

如何将数据(文本)从托管程序集流式传输到本机库并将数据(文本)流式传输回托管程序集?

具体来说,我想System.IO.Stream在.NET端公开某种类型,并且(最重要的是)FILE *在本机方面.

本机方法的签名应该是:

FILE * foo(FILE * bar);

本机p/invoke调用的包装签名应该是:

CustomStream foo(CustomStream bar);

我不想在本机端使用回调方法(一个用于获取更多数据,一个用于设置更多数据).我想FILE *在本机端使用a - 以及所有相关的方法,例如fprintf.

我不想要任何磁盘I/O. 这需要是内存中的操作.

我完全控制托管程序集和本机库.

该解决方案必须与.NET 2.0一起使用

我愿意创建任何类型的托管或非托管填充层,以实现此目的.

"明显的"解决方案是使用STDINSTDOUT启动子进程 - 但是我不想要一个单独的进程.此外,我试图重定向STDINSTDOUT这不是在Windows控制台应用程序本机库的数据流都失败了几分壮观(以及很多头撞).

基于这个问题: 在C#Windows服务上重定向stdout + stderr我试图修改方法(至少)解决问题的一半"响应"流 - 但是没有FileStream(因为我想要更类似的东西MemoryStream).但是,FileStream是唯一一种公开合适的低级流句柄的流类型.

否则,我已经陷入困境,我现在正在考虑我需要深入研究并提出我自己的手动本地< - >托管流实现,但实际上并不知道从哪里开始.


最后!

我在这里发布了一个完整的示例项目:

http://pastebin.com/jcjHdnwz

这适用于.NET 3.5并使用AnonymousPipeServerStream- 但是只需要一点点反射器,就可以很容易地复制AnonymousPipeServerStream.NET 2.0中的内部工作方式.

感谢您的帮助shf301指向我的原生管道API,让我查看Microsoft文档以更好地了解正在发生的事情,并指出我需要使用该_open_osfhandle方法来获取FILE …

.net c# pinvoke stdout stream

10
推荐指数
1
解决办法
2815
查看次数

什么会导致我(强烈)声明的财产在我背后变为零?

使用ARC,我有一个以下形式的声明属性:

@property (nonatomic, strong) MyClass * instanceName;
Run Code Online (Sandbox Code Playgroud)

我在三个地方设置了这个属性 - 我在所有三个地方添加了断点.

我在很多地方引用了这个属性.

当我单步执行代码时,属性将被设置,并且调用属性的其他两个位置都不会被调用.(正如预期的那样).

但是,在某些时候,此属性的值变为零.

我已经为我的类添加了一个dealloc方法,带有一个NSLog和一个断点 - 但它永远不会被调用(所以它不像是被视为归零弱引用).

令我感到困惑的是,为什么我的"强势"财产会在没有让我这么做的情况下成为零.

任何意见,将不胜感激.

谢谢

objective-c automatic-ref-counting

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

在iTunes中添加产品连接

大家好我开发了一个应用程序购买的应用程序启用并成功完成它.我可以在沙盒环境中测试我的应用程序和应用内购买按需要完成.我通过访问itunes连接网站手动添加产品.虽然我我很高兴整个过程,如果有100个产品,我会想到一个新的想法?我应该手动添加所有的百产品吗?

有没有办法直接将我的所有产品从我的服务器添加到itunes,注意产品的所有信息(标识符,价格,类别等)与产品一起提供.

有人在这方面帮助我,这真的为我节省了很多时间.

tnx提前.

iphone itunesconnect ipad

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

MinGW"无法找到程序入口点libiconv ......"

我有一个标准的C库,使用gcc在Mac OS X上编译得很好.

我已经检查过可用于Windows的C编译器,并选择MinGW有几个原因:

  • MS的工具不支持C99
  • Cygwin等.人.使用我不想要的posix仿真增加了额外的复杂性
  • 无法让lcc-win32工作

但是,当我尝试构建我的库时,我得到了这个:

在此输入图像描述

这些东西看起来都很古老,我在网上几乎找不到合适的资源.

任何帮助将不胜感激.

谢谢.

编辑:

我正在努力建立什么并不重要.即使我只使用添加两个数字的函数创建单个文件.它崩溃了.似乎与源代码或传递给gcc的选项没有任何关系.我认为这是我的MinGW设置的问题,而不是我的项目.

c mingw

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

正多边形的有效包装算法

我正在寻找一种打包算法,它将正多边形缩小为矩形和直角三角形.该算法应该尝试使用尽可能少的这种形状,并且应该相对容易实现(考虑到挑战的难度).

如果可能,这个问题的答案应该解释建议算法中使用的一般启发式方法.

algorithm math triangulation tesselation

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

为UIImagePickerController启用HDR选项

甚至可以在我的应用程序中启用HDR选项吗?我以为它会自动出现.我寻找其他媒体类型,认为kUTTypeHDRImage可能是一个选项,但没有这样的运气.它不是一种额外的源类型,也不能通过cameraCaptureMode获得.

ipc.sourceType = UIImagePickerControllerSourceTypeCamera;
ipc.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage];
Run Code Online (Sandbox Code Playgroud)

在文档中没有提到它:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html

iphone cocoa-touch objective-c

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

使用C宏创建映射到Objective-C消息调用的C风格代码?

我相信我会得到20个人说"你为什么要这样做呢"......但是,我会问我的问题,因为它有点学术性质.

我想用C宏重新定义[ClassName new]为:new(ClassName),我想知道如何做到这一点.我开始时对C宏不太满意(我知道 - 令人尴尬 - 我应该这样) - 而且我绝对不喜欢将它们与我的Objective-C代码混合使用.那么,关于这个问题......

首先,作为预处理器,我可以做一个简单的替换:

#define new(x) [x new]
Run Code Online (Sandbox Code Playgroud)

或者,无论出于何种原因,我是否需要下载到objective-c运行时,并执行更类似于以下的操作:

#define new(x) objc_msgSend(class_createInstance(x, 0), sel_registerName("init"))
Run Code Online (Sandbox Code Playgroud)

做这样的事情有什么不足之处?

这种事情经常被其他人使用,或者,有人会看着它说"你在那里做什么"?(我应该关心)

谢谢

编辑:

事实上,在我发布之后发生了这件事,事实上我之前看到过这种事情 - 在Three20 lib中,他们做了这样的事情:

#define TT_RELEASE_SAFELY(__POINTER) { [__POINTER release]; __POINTER = nil; }
#define TT_INVALIDATE_TIMER(__TIMER) { [__TIMER invalidate]; __TIMER = nil; }

// Release a CoreFoundation object safely.
#define TT_RELEASE_CF_SAFELY(__REF) { if (nil != (__REF)) { CFRelease(__REF); __REF = nil; } }
Run Code Online (Sandbox Code Playgroud)

所以我的问题可能很简单; 这样做有什么不足之处,这是一种相对公认的做法,还是会让我陷入更多困境的事情呢?

c macros objective-c

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

CallingConvention不会导致PInvokeStackImbalance

我不知道这里有什么问题.

我有大量的p/invoke调用,没有事故......除了这个.

我已设法将我的问题减少到以下示例代码.

如果我删除结构成员(double或int),它可以正常工作.

我假设问题以某种方式与结构的布局有关 - 但是当我在C中执行sizeof()和在C#中执行Marshal.SizeOf()时,它们都返回相同的值...所以如果结构大小在C#和C中是一样的,问题是什么?

我显然遗漏了一些基本的东西.

SampleDLLCode.c

#pragma pack(1)

typedef struct SampleStruct {
    double structValueOne;
    int structValueTwo;
} SampleStruct;

__declspec(dllexport) SampleStruct __cdecl SampleMethod(void);
SampleStruct SampleMethod(void) { 
    return (SampleStruct) { 1, 2 };
}
Run Code Online (Sandbox Code Playgroud)

构建脚本

gcc -std=c99 -pedantic -O0 -c -o SampleDLLCode.o SampleDLLCode.c
gcc -shared --out-implib -o SampleDLL.dll SampleDLLCode.o 
Run Code Online (Sandbox Code Playgroud)

C#代码

using System;
using System.Runtime.InteropServices;

namespace SampleApplication
{
    [StructLayout(LayoutKind.Sequential, Pack=1)]
    public struct SampleStruct {
        public double structValueOne;
        public int structValueTwo;
    } 

    class Program
    {
        [DllImport("SampleDLL.dll", CallingConvention = CallingConvention.Cdecl)]
        public static …
Run Code Online (Sandbox Code Playgroud)

c c# pinvoke

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