若没有,如何画一个三角并填充颜色?另外,在MSDN里查函数,事先并不知道函数名称,怎么办?比如,我想查画三角形的函数。我用词霸找到三角形的英文是“triangle”。于是我就到MSDN的CDC类里找“tri”的字眼,可是找不到。于是我认为就是没有这个函数。你们是怎么找函数的呢?谢谢!

解决方案 »

  1.   

    用moveto和lineto画三条线不就行了
      

  2.   

    常用的画三角形算法步骤:1)根据三个顶点ABC按照y坐标排序
    2)取得排序后中间的那个坐标,假设
    [L,M,N]=sort(A,B,C),过那个点做平行与x轴的直线交对面的边上一点P
    3)这样就分割出两个三角形 LMP和NMP两个三角形,且两个三角形都有一条边平行与x轴
    4)对任意坐标Y' in [Ly,My]计算出边LM和LP上两点K,J, 画直线KJ, 这样上三角就画出来了
    5)重复第4步骤,把三角形LMP换成NMP
      

  3.   

    按照这个步骤,因为每条线都是你自己填充的,所以你可以自己控制填充颜色,Flat,Gouruad或者其他差值算法都可以
      

  4.   

    第二步说掉了一个 #- - 过M点做平行与x轴的直线交对面的边上一点P,这时会有My=Py
      

  5.   

    谢谢lexchou(龍子龍孫)(本人已死)(有事烧纸) !很详细!
    不过我若直接就画三条直接,是否更容易呢?
    最关键的是,你说的填充,是指“线”的填充吧?也就是三角形的边。可是我现在想给三角形内部填充颜色,怎么办呢?
      

  6.   

    明白了!就是用很多平行线填充出一个三角形。
    难道VC里画三角形如此烦琐?没有现成的函数吗?另外还能解释一下MSDN里如何查找函数的问题吗?
      

  7.   

    因为一般2D图形算法是没有必要画三角形的。三角形一般都是在3D光栅化的时候才采用。
    所以MSDN没有GDI画三角形里的直接函数的描述。你一定要用MSDN里面提到过的,而且是Microsoft的东西来画三角形,那么可以用Direct3D,如果你不怕麻烦的话
      

  8.   

    GDI我不是很熟悉 #- -  在我见过的2D图形算法中倒是真没见过三角形
      

  9.   

    你还能友情回答一下这两个问题吗:
    1、另外,在MSDN里查函数,事先并不知道函数名称,怎么办?
    2、用画刷创建一个内部为红色的矩形,结果四条边还是黑色,怎么办?
      

  10.   

    1. 你大概知道有什么作用,就搜索看看
    2. GDI我不是很熟悉 #- -