小编Tom*_*rek的帖子

有没有一种颜色混合的算法,就像混合真实颜色一样?

RGB颜色的常见混合与绘画的混合颜色非常不同,它是混合光而不是混合颜料.

例如:

Blue (0,0,255) + Yellow (255,255,0) = Grey (128,128,128)
Run Code Online (Sandbox Code Playgroud)

(它应该是蓝色+黄色=绿色)

是否有任何已知的混色算法,就像混合真实颜色一样?


我的方法

我已经尝试过以下内容:

将两种颜色转换为HSV并混合色调(乘以从饱和度计算的系数),以及饱和度和值通道的简单平均值.然后我从两种颜色计算平均亮度,并调整结果颜色以匹配此亮度.这很有效,但色调混合有时是错误的,例如:

Red (Hue 0°) + Blue (Hue 240°) = Green (Hue 120°)
Run Code Online (Sandbox Code Playgroud)

我发现有时我需要将色调值移动360°(当色调之间的差异大于180°时).

Red (Hue 360°) + Blue (Hue 240°) = Magenta/fuchsia (Hue 300°)
Run Code Online (Sandbox Code Playgroud)

但这种转变也不是很好,例如:

Cyan (Hue 179°) + Red (Hue 0°) = Hue 89.5°
Cyan (Hue 181°) + Red (Hue 0°) --> shifting is performed (the difference is greater than 180°)
Cyan (Hue 181°) + Red (Hue 360°) = Hue 270.5°
Run Code Online (Sandbox Code Playgroud)

(色调179 +红色)和(色调181 +红色)产生两种完全不同的颜色. …

language-agnostic algorithm blending colors color-space

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

在app.config中为类库做绑定重定向会做什么吗?

我经常使用的VS解决方案包括一个可执行项目(控制台应用程序,Web应用程序)和许多可执行文件引用的类库项目.

在使用NuGet并安装软件包时,通常会app.config为每个项目创建一个文件,通常只包含合并重定向列表,这些重定向合并了引用程序集的版本.有时候会有一些特定于第三方库的内容(比如Entity Framework配置部分),但是现在让我们把它放在一边.

当我构建解决方案并使用主可执行项目的二进制文件时,我会看到构建输出中的所有类库项目程序集以及相应的*.config文件(app.config文件AssemblyName.config在构建时重命名为).

启动主可执行文件时,类库程序集的配置文件是否有效?或者只是app.config在这种情况下具有效果的可执行文件?如果在某些类库项目上设置了一些绑定重定向,并在主可执行项目上设置了一些不同的绑定重定向,这些如何组合,哪些优先?

我试图在网上研究这个,从我读过的内容来看,它看起来像app.config非可执行程序集的文件是无用的(关于绑定重定向).有人可以确认这一点或详细说明这个主题吗?

如果是这样的话,app.config如果它们只包含绑定重定向,那么实际上不希望NuGet在类库中创建这些文件吗?我觉得NuGet不应该为类库项目创建那些绑定重定向,因为它只会增加对实际应用的设置的混淆.


我在这个主题上发现了这些现有的Stack Overflow问题,但是他们接受的答案实际上是矛盾的,即使它们被标记为彼此重复.

第一个问题的接受答案提到app.config文件实际上是在编译时使用的,这意味着它们可能有效.像MSDNMSBuild源代码这样的来源被引用作为它在编译时使用的证明.不幸的是,我对MSBuild的熟练程度不足以理解它是如何被使用的,以及它是否真的是一个有效的参数.

任何人都可以描述一个示例场景来证明带有绑定重定向的类库的app.config可以做什么吗?

.net c# app-config nuget assembly-binding-redirect

43
推荐指数
2
解决办法
3416
查看次数

Makefile,用于区分Windows和类Unix系统

我想在Linux和Windows上构建相同的Makefile.我在Linux上使用默认的GNU make,在Windows上使用 mingw32-make(也是GNU make).

我希望Makefile检测它是在Windows还是Linux上运行.


例如make clean,Windows上的命令如下所示:

clean:
    del $(DESTDIR_TARGET)
Run Code Online (Sandbox Code Playgroud)

但在Linux上:

clean:
    rm $(DESTDIR_TARGET)
Run Code Online (Sandbox Code Playgroud)

另外我想在Windows(\)和Linux(/)上使用不同的目录分隔符.


可以在Makefile中检测Windows操作系统吗?

PS:我不想在Windows上模拟Linux(cygwin等)

有类似的问题:操作系统检测makefile,但我没有在这里找到答案.

linux windows makefile os-detection

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

如何在 ASP.NET Core(.NET 6、VS 2022)中禁用浏览器链接

我已禁用 Visual Studio 2022 内的浏览器链接,并且还禁用了所有热重载功能。

启用浏览器链接未选中

热重载设置已禁用

甚至浏览器链接仪表板也表明应该禁用它:

浏览器链接仪表板

我也没有在我的代码中的任何地方使用任何代码app.UseBrowserLink();(如ASP.NET Core 中的浏览器链接中所述)

然而,这些中间件仍然以某种方式出现在请求管道中:

  • Microsoft.AspNetCore.Watch.BrowserRefresh.BrowserRefreshMiddleware
  • Microsoft.WebTools.BrowserLink.Net.BrowserLinkMiddleware

这些中间件将其添加到我的 HTML 中:

<!-- Visual Studio Browser Link -->
<script type="text/javascript" src="https://localhost:44399/0928d478a97d441187231f2a1a7cd5e5/browserLink" async="async" id="__browserLink_initializationData" data-requestId="c94cf93088fb44e98f4e499b20ad7bfe" data-requestMappingFromServer="False"></script>
<!-- End Browser Link -->

<script src="/_framework/aspnetcore-browser-refresh.js"></script></body>
Run Code Online (Sandbox Code Playgroud)

每次我保存文件时,它都会重新加载浏览器。我想阻止这种行为,但我已经没有选择了。

这是 IIS Express 或 Visual Studio 自动添加的内容吗?

我还检查了所有包和 DLL,但我没有看到它包含在我的代码中的任何位置。它必须通过 Visual Studio 2022 所做的一些“魔法”自动包含在内。

我如何停止所有这些重新加载?我不需要任何浏览器链接或浏览器刷新。请帮忙,我花了很多时间在这上面,我很绝望。

c# visual-studio browser-link .net-core asp.net-core

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

Code Golf:浪潮

挑战

按字符计数的最短代码,用于从输入字符串生成波形.

通过提升(第1行)较高字符并使(第1行)降低较低字符来生成波.相等的字符保持在同一行(没有提升或降级).

输入仅由小写字符和数字组成,字母被认为高于数字.

测试用例:

Input:
    1234567890qwertyuiopasdfghjklzxcvbnm

Output:
                                 z
                                l x v n
                               k   c b m
                              j
                             h
                            g
                   y   p s f
                  t u o a d
               w r   i
            9 q e
           8 0
          7
         6
        5
       4
      3
     2
    1

Input:
    31415926535897932384626433832795028841971693993751058209749445923078164062862

Output:
                9 9   8 6 6
         9 6   8 7 3 3 4 2 4  8   9   88
    3 4 5 2 5 5     2       33 3 7 5 2  4 9   9 99 …
Run Code Online (Sandbox Code Playgroud)

language-agnostic code-golf rosetta-stone

41
推荐指数
11
解决办法
6203
查看次数

从构建输出中省略本地化版本的程序集

在我的一个项目中,我使用了一个名为Humanizer的很棒的库.这个库有很多语言版本(我算38).

当我构建我的项目时,然后我看到所有这些文件夹,如"af","ar","bg","bn-BD",...,"zh-Hant",其中的程序集包含此库的本地化资源.

我的问题是我的项目仅限英语,我没有兴趣在我的构建输出中拥有所有这些本地化程序集.是否有一些从构建中省略它们的好方法?

我正在寻找这个问题的一般解决方案.它发生在除Humanizer之外的库,如DevExpress Controls等,它们不是开源的.

.net c# localization build .net-assembly

16
推荐指数
2
解决办法
1182
查看次数

什么是统一型系统?

我已经阅读了C#和Java比较,列表中的第一件事是"单根(统一)类型系统".

您能描述单根(统一)类型系统的含义吗?

c# java type-systems

15
推荐指数
2
解决办法
9129
查看次数

在HasOptional()中映射外键.实体框架6中的WithOptionalDependent()关系

我在Entity Framework 6.1.3中有以下数据模型:

using System.Data.Entity;

public class Student
{
    public int Id { get; set; }
    public virtual Contact Contact { get; set; }
}

public class Contact
{
    public int Id { get; set; }
    public virtual Student Student { get; set; }
}

public class MyContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder builder)
    {
        builder.Entity<Contact>()
            .HasOptional(x => x.Student)
            .WithOptionalDependent(x => x.Contact)
            .WillCascadeOnDelete(true);
    }
}

public static class Program
{
    private static void Main()
    {
        Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());

        using …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework fluent-entity-framework

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

如何使用phpDoc重载方法?

假设我有一个名为Color的PHP类,它的构造函数接受各种参数.

// hex color
$myColor = new Color('#FF008C');

// rgb channels
$myColor = new Color(253,15,82);

// array of rgb channels
$myColor = new Color(array(253,15,82));

// X11 color name
$myColor = new Color('lightGreen');
Run Code Online (Sandbox Code Playgroud)

我应该如何使用phpDoc为构造函数和其他类似的方法创建API文档?

如何使用phpDoc重载方法?

class Color {

    /**
     * Constructor
     * what should be here?
     */
    public function __construct() {
        /* CODE */
    }

}
Run Code Online (Sandbox Code Playgroud)

php overloading phpdoc documentation-generation

13
推荐指数
3
解决办法
3942
查看次数

<small>标签使段落的高度更大

我有以下小提琴:

http://jsfiddle.net/tompazourek/sn5jp/

<p>some normal-sized text</p>

<p>some <small>small</small>-sized text</p>
Run Code Online (Sandbox Code Playgroud)
p { line-height: 20px }
Run Code Online (Sandbox Code Playgroud)

当我在Chrome中检查页面时,我发现第一段的计算高度是20px,但第二段的计算高度是21px.

为什么<small>标签会导致这些问题?我怎样才能解决这个问题?

<small>段落文本中的每个出现都会扰乱我的基线网格.


编辑:我后来还发现了一篇与此主题相关的有趣文章:Deep dive CSS:font metrics,line-height和vertical-align.

html css baseline

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