小编Bev*_*vin的帖子

Java Swing组件的Z顺序

我一直在寻找一些提及这一点,但我找不到任何实质性的信息.有没有办法改变Swing组件的z顺序,或者至少改变绘制顺序,使它们看起来高于其他组件?

java swing components z-order

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

从shell运行的ffmpeg运行正常,但在.NET内部调用时则不行

我试图在C#程序中使用ffmpeg(在Windows上使用Cygwin编译),通过使用Process该类来生成ffmpeg实例.但是,我遇到了一个相当奇怪的错误,没有多大意义.

当我直接从shell运行ffmpeg时(无论是Cygwin的bash,PowerShell,cmd),ffmpeg可以正确解码和重新编码文件而不会出现任何问题:

PS C:\audio> ffmpeg -i .\sound1.wav -acodec libvorbis -f ogg abc.ogg
ffmpeg version 1.2 Copyright (c) 2000-2013 the FFmpeg developers
  built on Apr  8 2013 15:10:40 with gcc 4.5.3 (GCC)
  configuration: --disable-encoder=vorbis --enable-libvorbis
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
[wav @ …
Run Code Online (Sandbox Code Playgroud)

.net c# cygwin ffmpeg

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

归一化FFT幅度以模仿WMP

所以,我一直在为声音文件制作一个小型可视化工具,只是为了好玩.我基本上想模仿Windows Media Player中的"Scope"和"Ocean Mist"可视化器.范围很简单,但我遇到了Ocean Mist的问题.我很确定它是某种频谱,但是当我对波形数据进行FFT时,我得不到与Ocean Mist显示的数据相对应的数据.频谱实际上看起来是正确的,所以我知道FFT没有任何问题.我假设可视化器通过某种过滤器运行光谱,但我不知道它可能是什么.有任何想法吗?

EDIT2:我在这里发布了我的代码的编辑版本.通过编辑,我的意思是我删除了所有实验性评论,只留下了活动代码.我还添加了一些描述性的评论.可视化器现在看起来像这样.

编辑:这是图像.第一个是我的可视化器,第二个是Ocean Mist.

我的可视化工具http://i43.tinypic.com/5xuyqa.jpg 海洋雾http://i41.tinypic.com/f1bb04.jpg

audio visualization fft visualizer

6
推荐指数
1
解决办法
3381
查看次数

通过在XNA中滑动平面进行碰撞检测

我正在尝试为我正在制作的自定义Minecraft客户端设计碰撞检测算法.基本上,整个世界都是由立方体组成,而玩家(或相机)需要能够站立并移动这些立方体.我想要的结果如下图所示: 图片

绿线是玩家的运动矢量.当玩家在其中一个立方体的平面上刷牙时,我希望矢量变为与平面垂直的矢量.但是,矢量应该保持它在平面方向上的所有速度,但是会失去朝向平面的所有速度.

我希望我的问题清楚.实现这样的碰撞检测系统的最佳和最有效的方法是什么?此外,这样的系统是否允许简单的重力组件?

编辑:忘记提及,立方体存储在三维数组中,[x,y,z].

c# xna collision-detection

6
推荐指数
1
解决办法
2838
查看次数

在XNA 4.0中绘制具有多个边的纹理立方体

我几个小时以来一直在反对这个问题.我想要做的是画一个立方体,每边都有不同的纹理; 或者更具体地说,我希望能够指定我想要的每一面纹理.我用这里的例子开始,然后尝试进一步开发它,所以我可以有多个纹理.但是,无论我做什么,它仍然只使用应用于效果的最后一个纹理,并且不理会任何先前的任务.这是我的形状类:

public class BasicShape {

 public Vector3 shapeSize;
 public Vector3 shapePosition;
 private VertexPositionNormalTexture[][] shapeVertices;
 private int shapeTriangles;
 private VertexBuffer shapeBuffer;
 public Texture2D topTexture;
 public Texture2D frontTexture;
 public Texture2D backTexture;
 public Texture2D leftTexture;
 public Texture2D rightTexture;
 public Texture2D bottomTexture;

 public BasicShape(Vector3 size, Vector3 position) {
    shapeSize = size;
    shapePosition = position;
 }

 private void BuildShape() {
    shapeTriangles = 12;

    shapeVertices = new VertexPositionNormalTexture[6][];
    for(int i = 0; i < 6; i++) {
        shapeVertices[i] = new VertexPositionNormalTexture[6];
    }

    Vector3 …
Run Code Online (Sandbox Code Playgroud)

c# xna

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

在XNA 4.0中绘制大量纹理立方体

我正在尝试在XNA 4.0中编写一个自定义的Minecraft Classic多人游戏客户端,但是当我真正在游戏中绘制世界时,我感到非常难过.每个块都是3D空间中的立方体,并且它可以在每一侧具有不同的纹理.我一直在互联网上阅读,发现对于一个立方体,每一面都有不同的纹理,每个面都需要自己的一组顶点.这使得每个立方体总共有24个顶点,如果你有一个由64*64*64立方体组成的世界(或者可能更多!),那就会产生很多顶点.

在我的原始代码中,我将纹理贴图分成单独的纹理,并在绘制每个立方体的每一面之前应用这些纹理贴图.我被告知这是一种非常昂贵的方法,我应该将纹理保存在同一个文件中,只需使用UV坐标将某些子纹理映射到立方体上.尽管如此,这对性能没有太大作用,因为顶点的数量太多了.我还被告知要在VertexBuffer中收集顶点并立即绘制它们,但这也没有多大帮助,并且当顶点数量超过缓冲区的最大大小时偶尔会导致异常.我尝试制作立方体共享顶点的任何尝试也都失败了,导致大量减速和毛刺的立方体.

我不知道该怎么做.我一般都非常擅长编程,但任何类型的3D编程或游戏开发都完全逃脱了我.

这是我用来绘制立方体的方法.我有两个全局列表List<VertexPositionTexture>以及List<int>,一个用于顶点和一个指数.绘图时,我遍历世界上的所有立方体,并对非空的立方体(如Air)进行RenderShape.我拥有的形状类粘贴在下面.AddVertices方法中的注释代码是尝试使多维数据集共享顶点.当所有立方体的顶点都已添加到列表中时,数据将粘贴到VertexBuffer和IndexBuffer中,并调用DrawIndexedPrimitives.

说实话,我可能完全错了,但我真的不知道该怎么做,并且没有教程实际描述如何绘制大量对象,只有非常简单的对象.我不得不弄清楚如何重做BasicShape以获得多个纹理.

形状:http: //pastebin.com/zNUFPygP

c# xna

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

嵌套或不嵌套的if-blocks?

我想知道在C#中使用ifs时是否存在性能差异,它们是否嵌套.这是一个例子:

if(hello == true) {
    if(index == 34) {
        DoSomething();
    }
}
Run Code Online (Sandbox Code Playgroud)

这比这更快还是慢:

if(hello == true && index == 34) {
    DoSomething();
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

.net c#

4
推荐指数
2
解决办法
2125
查看次数

3D基元,XNA 4.0上的透明纹理问题

我需要画一大堆立方体,每一面都有(可能)独特的纹理.一些纹理也具有透明度的一部分.具有透明纹理的立方体后面的立方体应该透过透明纹理显示.但是,我绘制立方体的顺序似乎决定了透明度是否有效,这是我想要避免的.看这里:

cubeEffect.CurrentTechnique = cubeEffect.Techniques["Textured"];

Block[] cubes = new Block[4];
cubes[0] = new Block(BlockType.leaves, new Vector3(0, 0, 3));
cubes[1] = new Block(BlockType.dirt, new Vector3(0, 1, 3));
cubes[2] = new Block(BlockType.log, new Vector3(0, 0, 4));
cubes[3] = new Block(BlockType.gold, new Vector3(0, 1, 4));


foreach(Block b in cubes) {
    b.shape.RenderShape(GraphicsDevice, cubeEffect);
}
Run Code Online (Sandbox Code Playgroud)

这是Draw方法中的代码.它产生了这个结果: 第一张图片http://oi53.tinypic.com/av4tv7.jpg

如您所见,叶子立方体后面的纹理在另一侧是不可见的.当我在数组中反转索引3和0时,我得到这个: 正确的形象

很明显,绘图的顺序正在影响立方体.我怀疑它可能与混合模式有关,但我不知道从哪里开始.

c# xna textures

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

进行服务调用时,Request.InputStream为空

我正在使用ASP.NET 4.5应用程序,我遇到了一个非常烦人的问题.迁移到VS2012后,我们遇到了与此处相同的问题.给定的解决方案有效,但我现在发现另一个问题正在发生.由于某种原因,报告包含HTTP请求的正文内容的InputStream为空.Content-Length标头声称存在数据,但我无法访问它.

奇怪的是,数据似乎存在于上面链接问题中指定的变通方法模块中,但在模块和API调用之间的某个点处,流被替换为空的流.请参阅以下示例:

public class WcfReadEntityBodyModeWorkaroundModule : IHttpModule
{
    public void Dispose() { }

    public void Init(HttpApplication context)
    {
        context.BeginRequest += context_BeginRequest;
    }

    void context_BeginRequest(object sender, EventArgs e)
    {
        HttpApplication app = sender as HttpApplication;
        //This will force the HttpContext.Request.ReadEntityBody to be "Classic" and will ensure compatibility..

        Stream stream = app.Request.InputStream;
        // This stream has data...
    }
} 

...

    [OperationContract]
    [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Xml)]
    public Dictionary<string,string> SaveAudioFile()
    {
        Stream s = HttpContext.Current.Request.InputStream;
        // ...but this one …
Run Code Online (Sandbox Code Playgroud)

c# asp.net iis .net-4.5

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

将滚动条添加到UserControl

我正在尝试使用Horizo​​ntalScroll和VerticalScroll属性向我的UserControl添加垂直和水平滚动条,但我遇到了极端问题.当我拖动或操纵栏上的滚动框时,我的问题就出现了.当我放手时,它只是跳回到起始位置!

我知道AutoScroll属性,但我不想使用它,因为我希望能够控制滚动条的每个方面,我不希望它自动完成.此外,根据文档,AutoScroll用于"[启用]用户滚动到位于其可见边界之外的任何控件",这不是我想要的.我只想要滚动条.

... aaand我想我可以将VScrollBar和HScrollBar添加到控件中,但是为什么我应该在滚动功能已经存在时执行此操作?对我来说似乎是一种浪费.

c# user-controls scrollbar winforms

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

TcpClient.Close不会关闭连接

我有一个使用TcpClient和TcpListener通过网络进行通信的应用程序.但是,当我在客户端上调用TcpClient.Close以断开它与服务器的连接时,服务器根本不会做出反应.

现在,您询问这个问题是一个重复评论前一个,以及如何解决方案,可以发现在这里,相信我,当我说,我已经找到了这些,并试图他们.它没有帮助.我也尝试不同的组合TcpClient.Close,TcpClient.GetStream().Close()TcpClient.Dispose.什么都行不通.

代码没有什么值得注意的,只是客户端中的Disconnect方法重置所有变量以便重用,并关闭所有网络资源.服务器有一个循环,检查是否TcpClient.Connected为真,如果它是假的,它应该跳出循环并终止线程.

有任何想法吗?

c# networking tcpclient

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

如何根据整数字段获取List <>中的项?

我的程序中有一个List <>,填充了我的自定义类.我希望能够通过简单地指定一个整数从列表中提取一个对象,然后返回所有具有整数属性设置为该整数的对象.我想这样做:

int exampleint = 5;
List<MyClass> extract = new List<MyClass>();
for(int i = 0; i < list.Length; i++) {
    if(list[i].Number == exampleint)
        extract.Add(list[i]);
}
return extract;
Run Code Online (Sandbox Code Playgroud)

有没有更好或更快的方法呢?就是想.

更新:克里斯,你的答案有点偏.这个:

 List<MyClass> extract = list.FindAll(delegate(int obj) { return obj.Number == exampleint; });
Run Code Online (Sandbox Code Playgroud)

事实应该是这样的:

List<MyClass> extract = list.FindAll(new Predicate<MyClass>(delegate(MyClass obj) { return obj.Number == exampleint; }));
Run Code Online (Sandbox Code Playgroud)

你的第一个例子给了我错误.但是,感谢你指出我正确的方向,它现在似乎工作.

c# generics list

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