小编Val*_*mar的帖子

在HTML画布上绘制线条不断变化的线条

我正在尝试画一条以细线开头的线,然后逐渐扩大直到最后.我需要绘制半光滑曲线(由几条直线组成的复合曲线),我在找到解决此任务的方法时遇到问题.

这个小提琴显示了我的问题:

http://jsfiddle.net/ZvuQG/1/

当您调用stroke()时,当前设置的lineWidth用于描边整行.我的第一个想法是单独绘制每个线条,但当然,这会在角落的线条上留下明显的间隙.

这是我最好的选择?我应该采用绘制多边形(梯形)来使角落正确吗?

有没有更简单的方法?

(编辑:请注意,我并没有尝试实际绘制椭圆或任何其他基本形状;我正在尝试绘制数学函数,使用线条粗细来表示速度)

javascript html5 canvas

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

调用Task.WaitAll()时如何设置任务的用户标识?

我遇到了并行调用WCF服务的问题.我正在尝试使用Tasks来并行调用两个服务以节省一些时间(我不是试图使这个异步),但我的任务是作为另一个用户运行的.这两种服务都需要Windows身份验证,并且两次调用都会失败,因为调用该服务的用户没有所需的权限.

调用代码(下面的代码)位于ASP.NET MVC4中的Controller Action内,运行IIS 7.5.涉及的所有应用程序池都设置为允许ASP.NET模拟并需要Windows身份验证(所有其他方法设置为禁用).

// Parallel service request to two services
Task<object>[] tasks = new Task<object>[2];

// this shows my credentials, e.g. "MYDOMAIN\\MyUsername"
var userMe = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

tasks[0] = Task<object>.Factory.StartNew(() => 
{
    // this shows "IIS APPPOOL\\DefaultAppPool"
    var user = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

    var data = client1.MyMethod();
    return data;
});

tasks[1] = Task<object>.Factory.StartNew(() =>
{
    // this shows "IIS APPPOOL\\DefaultAppPool"
    var user = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

    var data = client2.MyMethod();
    return data;
});

Task.WaitAll(tasks);
Run Code Online (Sandbox Code Playgroud)

我的问题:如何指示任务作为当前用户运行,而不是作为"IIS APPPOOL\DefaultAppPool"用户运行?

c# iis wcf task-parallel-library

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

用C#修复数组数组(不安全的代码)

我正在尝试提出一个解决方案,以便我如何将C#中的数组数组传递给本机函数.我已经有了一个函数委托(Marshal.GetDelegateForFunctionPointer),但现在我正在尝试将多维数组(或者更确切地说是一个数组数组)传递给它.

当输入有2个子数组时,此代码示例有效,但我需要能够处理任意数量的子数组.您能想到的最简单的方法是什么?我不想在数组之间复制数据,因为这将在实时循环中发生(我正在与音频效果通信)

public void process(float[][] input)
{
    unsafe
    {
        // If I know how many sub-arrays I have I can just fix them like this... but I need to handle n-many arrays
        fixed (float* inp0 = input[0], inp1 = input[1] )
        {
            // Create the pointer array and put the pointers to input[0] and input[1] into it
            float*[] inputArray = new float*[2];
            inputArray[0] = inp0;
            inputArray[1] = inp1;
            fixed(float** inputPtr = inputArray)
            {
                // C function signature is someFuction(float** input, …
Run Code Online (Sandbox Code Playgroud)

c# interop unsafe fixed

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

从CUDA内核访问全局内存指针

我试图分配设备内存并将指针存储为全局变量.但是,当我尝试从内核访问内存时,我从cudaDeviceSynchronize():cudaErrorIllegalAddress收到此错误.我检查了从cudaMalloc和cudaMemcpy返回的cudaStatus代码,它们都是成功的.

我希望下面的例子足以说明我想做什么.基本上,我有大量的示例数据,我希望所有内核都能够读取,但我不想每次都将指针传递给内核调用.

我正在使用Windows 8 x64,使用Visual Studio 2012和nvcc(通过VS集成)编译代码.目标是x64 Debug可执行文件.我的设备是GTX 780.

#include "cuda_runtime.h"
#include <stdio.h>
#define SIZE (1024 * 1024 * 10)

__device__ int* cData;

void Init()
{
    int* data = new int[SIZE];
    cudaError_t cudaStatus;
    cudaStatus = cudaMalloc(&cData, SIZE * sizeof(int));
    for (int i = 0; i < SIZE; i++)
        data[i] = i;

    cudaStatus = cudaMemcpy(cData, data, SIZE * sizeof(int), cudaMemcpyHostToDevice);
    delete data;
}

__global__ void kernel(int i, int* output)
{
    *output = cData[i];
}

int main()
{
    cudaError_t cudaStatus …
Run Code Online (Sandbox Code Playgroud)

c++ cuda

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

在堆上分配C风格的字符串

伙计们,我需要一些技术帮助.我在C++工作,没有太多使用它的经验,但在某种程度上了解语言.我需要使用C风格的字符串(char数组),但我需要在堆上分配它.

如果你看一下这段非常简单的代码:

#include <iostream>
using namespace std;

char* getText()
{
    return "Hello";
}

int main()
{
    char* text;
    text = getText();
    cout << text;
    //delete text; // Calling delete results in an error
}
Run Code Online (Sandbox Code Playgroud)

现在,我假设在getText()内的堆栈上分配了"Hello"字符串,这意味着一旦getText返回,指针就会"浮动",我是对的吗?

如果我是对的,那么将"Hello"放在堆上的最佳方法是什么,所以我可以在getText之外使用该字符串,如果需要,可以在指针上调用delete?

c++

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

标签 统计

c# ×2

c++ ×2

canvas ×1

cuda ×1

fixed ×1

html5 ×1

iis ×1

interop ×1

javascript ×1

task-parallel-library ×1

unsafe ×1

wcf ×1