社区首页 >问答首页 >共混/平滑遮阳材料

共混/平滑遮阳材料
EN

Stack Overflow用户
提问于 2014-02-19 12:20:08
回答 2查看 985关注 0票数 3

我正在使用c#在wpf中创建和绘制三角形网格。我一直在努力弄清楚如何在三角形上创建一个平滑的阴影,就像经典的openGL光滑阴影三角形。

我想为每个顶点定义一个颜色,然后在脸上插入颜色,就像这样,假设红色、绿色和蓝色三种颜色。

我以为我需要用刷子,但我还不知道怎么用。因此,任何帮助将不胜感激,或任何指针的指南,以显示我如何实现这一点。

编辑:--我看过WPF3D中的三角梯度,它似乎部分地回答了这个问题,只是使用了xaml。不幸的是,它似乎需要等边三角形。

第二编辑上面的答案,使用RadialGradientBrushRadiusXRadiusY是用来把它变成椭圆形而不是圆形的吗?

3编辑好的,我很确定我可以使用RadialGradientBrush。我认为我能做的是,找到三角形圆周的中心,创建一个RadialGradientBrushRadiusXRadiusY等于圆周圆的半径。然后,我将RadialGradientBrush的焦点移动到GradientOrigin的顶点。

GradientOrigin以两个双倍X,Y为中心,它们都在区间0,1。据我所知,X= 0.0是左侧,X= 1.0是右边,Y= 0.0是顶部,Y= 1.0是底部。我不知道的是,这个映射是0,1x0,1到一个圆,还是一个正方形?从三角形的顶点到0,1x0,1的映射取决于这个区间所代表的形状。

EN

回答 2

Stack Overflow用户

发布于 2014-02-19 12:43:39

你听说过WPF的螺旋三维工具包吗?

我没有走到您想要的程度,但我想通过查看https://helixtoolkit.codeplex.com/wikipage?title=SurfaceDemo示例是可能的:

票数 1
EN

Stack Overflow用户

发布于 2014-02-19 12:54:57

当然有这样的图书馆,但是给出一些简单的方法,通过google,http://www.geeksforgeeks.org/check-whether-a-given-point-lies-inside-a-triangle-or-not/搜索。

计算距离的角,给出了平滑的颜色信息。检查点是否在三角形中。

代码语言:javascript
代码运行次数:0
复制
float area(int x1, int y1, int x2, int y2, int x3, int y3)
        {
            return (float)Math.Abs((x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) / 2.0);
        }

        bool isInside(int x1, int y1, int x2, int y2, int x3, int y3, int x, int y)
        {
            /* Calculate area of triangle ABC */
            float A = area(x1, y1, x2, y2, x3, y3);

            /* Calculate area of triangle PBC */
            float A1 = area(x, y, x2, y2, x3, y3);

            /* Calculate area of triangle PAC */
            float A2 = area(x1, y1, x, y, x3, y3);

            /* Calculate area of triangle PAB */
            float A3 = area(x1, y1, x2, y2, x, y);

            /* Check if sum of A1, A2 and A3 is same as A */
            return (A == A1 + A2 + A3);
        }


 for (int ii = 5; ii < 100; ii++)
          {
               for (int jj = 5; jj < 100; jj++)
                {
                        int distanceRed =0, distanceGreen =0,distanceBlue =0;
                        if (isInside(30, 50, 30, 90, 20, 70, ii, jj))
                        {
                              distanceRed = (int)Math.Sqrt(((ii - 30) * (ii - 30) + (jj - 50) * (jj - 50)));
                              distanceGreen = (int)Math.Sqrt(((ii - 30) * (ii - 30) + (jj - 90) * (jj - 90)));
                              distanceBlue = (int)Math.Sqrt(((ii - 20) * (ii - 20) + (jj - 70) * (jj - 70)));
                          }
                          else
                          {
                               distanceRed = 0; distanceGreen = 0; distanceBlue = 0;
                          }

                              ptr[(((int)jj) * 3) + ((int)ii) * stride] = (byte)(distanceRed % 256);
                              ptr[(((int)jj) * 3) + ((int)ii) * stride + 1] = (byte)(distanceGreen % 256);
                              ptr[(((int)jj) * 3) + ((int)ii) * stride + 2] = (byte)(distanceBlue % 256);

                           }
                       }

给出了结果:

不适合红色。也许这个模组错了。另外,sqrt效率很低。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21891537

复制
相关文章
Hibernate @OneToMany 及 @Cascade级联操作
由此,就会使用级联操作,在一对多关系中,@Cascade属性(级联)只设置“一”的一方即可,外键由“多”的一方进行维护。
好好学java
2020/03/16
6.1K0
Hibernate @OneToMany 及 @Cascade级联操作
Java 多重选择结构
多重选择结构是一种程序控制结构,它允许程序在多个条件之间进行选择,并执行相应的操作。它使用一系列的if-else语句,以及一个或多个switch语句,以便在多个条件之间进行选择。
久绊A
2023/03/24
3550
对象持久化API之JPA入门教程
注意:JPA是规范,不是ORM框架,是ORM框架的规范,JPA没有实现ORM,具体实现由ORM厂商提供
SmileNicky
2019/01/17
1.1K0
JPA系列之对象持久化API JPA简介
注意:JPA是规范,不是ORM框架,是ORM框架的规范,JPA没有实现ORM,具体实现由ORM厂商提供
SmileNicky
2022/05/07
8360
JPA系列之对象持久化API JPA简介
Hibernate学习笔记 多表映射
前面说了Hibernate的单表映射,由于是实体类和数据表之间一对一的映射,所以比较简单。现在就来说说多表映射,这需要涉及到多个实体类和数据表之间的关系。因此稍微复杂一点。
乐百川
2022/05/05
1.6K0
【Hibernate】Hibernate框架配置详解
通过Hibernate我们可以方便地操作数据库读取出来的信息,减少了繁琐的JDBC操作。
陈树义
2022/04/29
1.4K0
JPA关系映射系列三:one-to-many和many-to-one
本篇文章引导你通过Spring Boot,Spring Data JPA和MySQL实现one-to-many和many-to-one关联映射。
java干货
2021/02/17
9890
Hibernate Annotation (Hibernate 注解)
英文:http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/
Hongten
2018/09/18
1.4K0
Hibernate检索策略
Hibernate的检索策略可以通过配置文件或注解来定义。以下是Hibernate中常用的几种检索策略:
堕落飞鸟
2023/05/16
4700
碎片化 | 第四阶段-56-ManyToOne和OneToMany映射关系-视频
http://v.qq.com/x/page/f0567zgfet1.html ManyToOne (多对1) 表结构: note表----usernote表----(多对1) 1:将usernote实体类进行hibernate映射 2:在note实体类中,增加属性值和注解,并将原有userId属性注释 @ManyToOne @JoinColumn(name="userId") private Usernote usernote; 3:修改listDetail.jsp文件
码神联盟
2018/04/03
9070
Hibernate关联关系
文章目录 1. Hibernate关联关系 1.1. 一对一 1.1.1. 背景 1.1.2. 准备 1.1.3. 单向外键关联 1.1.3.1. 通过丈夫访问妻子 1.1.3.2. 通过妻子访问丈夫 1.1.3.3. 总结 1.1.4. 双向外键关联(@OneToOne(mappedBy=””) 1.1.4.1. 问题 1.1.4.2. 解决办法 1.1.4.3. 实现 1.1.4.4. 测试 1.2. 一对多 1.2.1. 准备 1.2.2. 前提须知 1.2.3. 单向外键关联 1.2.3.1.
爱撒谎的男孩
2019/12/31
6.3K1
如何在 Spring Boot 中 读写数据
写在前面:2020年面试必备的Java后端进阶面试题总结了一份复习指南在Github上,内容详细,图文并茂,有需要学习的朋友可以Star一下! GitHub地址:https://github.com/abel-max/Java-Study-Note/tree/master
用户5546570
2020/09/28
15.9K0
如何在 Spring Boot 中 读写数据
hibernate的关联与级联
1、关联指的是类之间的引用关系。如果类A与类B关联,那么被引用的类B将被定义为类A的属性。 2、关联的分类:关联可以分为一对一、一对多/多对一、多对多关联
全栈程序员站长
2022/08/04
1.3K0
hibernate的关联与级联
JPA 注解学习
最近学习hibernate注解形式配置POJO类,将注解的解析记下来,以备以后使用。
一个会写诗的程序员
2018/08/17
2.9K0
Hibernate
一、什么是 Hibernate? Hibernate 是一个基于元数据的轻量级的 ORM 框架: 1、元数据(Meta Data):data about data(数据的数据),也就是说描述一个对
用户2038009
2021/03/08
1.3K0
Spring 全家桶之 Spring Data JPA(四)
只配置了客户到联系人的关系,查看执行的SQL,相比上一次测试多了一条update外键的sql语句
RiemannHypothesis
2022/08/19
1.6K0
Spring 全家桶之 Spring Data JPA(四)
Hibernate的入门(Hibernate的环境搭建、Hibernate的API)
Hibernate第一天(Hibernate的环境搭建、Hibernate的API、Hibernate的CRUD)
AlbertYang
2020/09/08
1.2K0
Hibernate的入门(Hibernate的环境搭建、Hibernate的API)
ssh搭建开发环境
公司一直不是ssh零配置的框架,每次写action都要在applicationcontext和struts里面配置,好麻烦,最近有空,写了一个ssh零配置的框架 这里写了一个小的项目,以用户权限管理为例 先做准备工作: 1.struts2去官网下载最新版struts开发包http://struts.apache.org/download.cgi#struts216 2.hibernate4去官网下载最新版hibernate4开发包http://sourceforge.net/projects/hiberna
xiangzhihong
2018/01/29
2.1K0
Hibernate配置access Hibernate 连接 access
个人测试结果,还是使用方法一比较妥当。方法3出现了一个奇怪错误~~ 1、Hibernate对于Access的支持 方法一: 下载两个jar包,一个是Access的JDBC驱动包;另一个是数据库方言包,里面有支持Access方言的类。 下载地址:http://www.hxtt.com/access.zip,http://www.hxtt.com/test/hibernate.zip。 配置如下:(URL那里可以使用相对路径) xml 代码 <property name="hibernate.dialec
用户1258909
2018/07/03
2.3K0
Hibernate 的应用(Hibernate 的结构)?
SessionFactory sessionFactory = new Configuration().configure().
MickyInvQ
2020/09/27
7490

相似问题

@OneToMany in hibernate

63

Hibernate onetomany映射

26

Hibernate,OneToMany,AnnotationException

35

Hibernate OnetoMany关系

11

Hibernate @OneToMany关系

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文