🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.xwindow
Article #31

�� �ףɣΣģϣף� ϵͳʹ��ָ��--(14)

#31
From: �����ǡ�����������
Date: Fri, 02 Jan 1998 00:00
284 lines
18287 bytes
�ڣ�����  �����ʹ��λԪӳ��

    һ��λԪӳ����һ��Сͼ��˵�ø����һ�㣬һ��ͼ����������������ɣ�
������������һ��λԪ����Ӧ����λԪΪ��1 ��ʱ������Ϊ����ɫ������λ
ԪΪ��0 ��ʱ������Ϊ����ɫ�����������Ĺ��ó�ʽ������λԪӳ�����
���ò�ͬ�ķ������������༭�ʹ������ǡ���һЩʹ���߳�ʽ������ֱ��ʹ��
���ǡ�������󲿷ݵij�ʽ�����ڲ�����ʽʹ�����ǣ���Щ���ó�ʽ�󶼷���
�س�ʽ���У�ʹ��ʹ����׫д��ʽʱ�����ױ�ɼ������á���

    ���¿�ʼ������λԪӳ��Ĺ��ߣ�������ʵ��ʹ��xsetroot��ʽ�������
���㶨�����өĻ���趨һ��λԪӳ��ı�����ѡ�����ɫ�ʺ�ָ��һ��λԪ
ӳ�����α���ʹ�á�


14.1  ϵͳλԪӳ���ʽ��

    λԪӳ�񵵰��ij�ʽ�ݱ�����ϵͳ��һ�����ṩ���㣬Ԥ�财�������Ŀ
¼��

        /usr/include/x11/bitmaps

������Ĺ���վ�ϻ��?ͬ����һ�����ϵͳ��װ���ߣ����ǽ��Դ�Ŀ¼Ϊ׼��
�������е�һЩ������Ϊ���µġ���


14.2  ��̸ʽ�ر༭һ��λԪӳ�� -- bitmap

    bitmap��ʽ��һ�������Խ�̸ʽ������༭λԪӳ��Ĺ��ߣ���λԪӳ
���Է���������ʾ��ÿһ�����Ӵ��һ�����أ�������û����趨��������ء�


14.2.1  ����bitmap

    ͸��bitmap����Ա༭һ������һ��λԪӳ��ĵ��������ͷ��ʼ����
һ��λԪӳ�񲢽����Ϊ�����������Ǻ��ߣ���������bitmapʱ������Ҫ��
һ��������ƣ��������ִ�ĵ��������½��ĵ�����

    ������һ���µ�λԪӳ��ʱ�������ѡ���Ե�ָ����С�����X ���ȸ���
�أ��������δָ����Ԥ���СΪ16X16 ��������˵������������Ҫ����һ��
�Ƚϴ�һ���ʮ������λӳ�����ǿ���������������У�

        bitmap big-cross 40X50 &


14.2.2  ʹ��bitmap

    ��������Ҫ�༭һ���ִ�ĵ����������������������������ʽ��

        bitmap /usr/include/x11/bitmaps/cntr-ptr

��һ����ͼ14-1���Ӵ�������өĻ�ϣ����½���ʵ�ʴ�С��ʾ��ĿǰλԪӳ��
��״̬����һ����Ϊ����(reverse) ��λԪӳ���������ұߵġ��С������
����������ť�ķ�ʽ���������ǡ�

����ť����༭ͼ����򵥵ķ�����

    �趨���أ���һ������������������ť�������ǰ�ס��ť����ק��
              ÿһ����������ط����ᱻ�趨��ֱ���ɿ���ťΪֹ��

    ������أ���������ͬ�ķ����������Ի����Ұ�ť���档

������ת(invert)���أ���һ�����������������а�ť��Ҳ���Ǻڵ����ر���
              ���׵����ر��趨�������㰴ס�а�ť����ק��������
              �ظ��ᷴת��


        ��������������������������������������������
        ��      p160  fig 14.1                    ��
        ��                                        ��
        ��    ͼ14-1  λԪӳ��༭��              ��
        ��������������������������������������������

    bitmap�����������ò�������۲�ӽ��ͷ���϶˲��ݣ���ͼ14-2��
�Ŵ�ͼ��������������е�һ�������п�����һ��С���Σ��������ȵ�(hotspot)
����bitmap����������һ���α�ʱ��Ӧ�õ����ȵ����α��������ĵ㡣ָ��
�͵��α꣬�ȵ�ͨ���ڶ��ˣ���Բ�λ��ε��α꣬�ȵ��������ġ��������
��Set Hot Spot��Clear Hot Spot��������������ȵ��λ�û���ȥ��

    �����������ĸ�Ķ���������������Write Output��λԪӳ�񴢴�����
�����������뿪bitmap��ʽ��

        ��������������������������������������������
        ��      p161  fig 14.2                    ��
        ��                                        ��
        ��    ͼ14-2  һ���α�ġ��ȵ㡱          ��
        ��������������������������������������������

    �뿪��ʽ������Quit�������༭��λԪӳ��ȴ��ͼ��δ����ǰ�뿪��ʽ��
�㽫��õ���ʾ��ȷ�����Ƿ���Ҫ�������


14.2.3  ����״(shapes)

    bitmap���������ʹ�û�ͼ�����ף�

    ��һ���ߣ�����Line���α����һ����ڵ㣬��������ߵ�һ������
              һ�°�ť����������һ��Ҳ����һ�£�bitmap�ử�������ߡ�

    ��һ���пյ�Բ������Circle��ͬ��أ��α���һ����ڵ㣬��������
              ��Բ��Բ������һ�£�����������Բ֮Բ���ϵ���һ������
              һ�£�bitmap���������Բ��Բ�ܡ�

    ��һ�������Բ������Filled Circle ������ͬ�ϡ�


14.2.4  �ڳ����ε������ڹ���

    ����Clear Area��Set Area��Invert Area �����ڳ����������²�������
��������ľ�����ʽ������������Ͻ��԰�ס�������ⰴť�ķ�ʽָ����Ȼ��
��ק�����½ǣ�������קʱ��Ŀǰ��ָ����������Ը�������ʾ��

    ����Կ������ƶ����ص�(overlay) һ������������ק�ķ�ʽָ��ԭʼ
���򣬶�����Ŀ�������ϵ����Ͻ�������ť����������Ķ������£�

        ����(Copy)��Ŀ������ᱻ�������ж�Ӧ�ԭʼ����Ϊ�����ص�
                    ��ᱻ�趨��

        �ƶ�(Move)��ԭʼ�����Ŀ����������Ŀ�������Ӧ�ԭʼ��
                    ��Ϊ�����صľ�ᱻ�趨��

        �ص�(Overlay) ����Ŀ�������ж�Ӧ�ԭʼ�����趨�����ؾ�ᱻ
                    �趨������û�иı䡣


14.2.5  һ��λԪӳ��ĵ�����ʽ

    һ��λԪӳ�����ͬASCII ����һ��浽�����У����ʽ����C ���Գ�
ʽƬ�Ρ�

    ���磺����  /usr/include/X11/bitmaps/cntr_ptr   �����ݣ�

          #define cntr_ptr_width  16
          #define cntr_ptr_height 16
          #define cntr_ptr_x_hot   7
          #define cntr_ptr_y_hot   1
          static char cntr_ptr_bits[]=
          0x00, 0x00, 0x80, 0x01, 0x80, 0x01,\
          0xc0, 0x03, 0xc0, 0x03, 0xe0, 0x07,
          0xe0, 0x07, 0xf0, 0x0f, 0xf0, 0x0f,\
          0x98, 0x19, 0x88, 0x11, 0x80, 0x01,
          0x80, 0x01, 0x80, 0x01, 0x80, 0x01,\
          0x00, 0x00;

    ����_x_hot��_y_hot�ı�������ȵ㱻ָ����Ż�������

    ����ϸ�ڰ���bitmap(1) ��ָ��ҳ�У�����������Σ�������ֱ����
���ָ�ʽ����λԪӳ���κ�����Ҫ�����¾��й��߳�ʽ�����?


14.3  �༭λԪӳ������ķ���

    bitmap��ʽ���һ��С��ͼ�ι������������൱���㣬������һЩȱ�㣺

    ������ܽϼ򵥸�ʽ�����뵵��������һЩ��ɨ���ִ�ͼ�������ĵ�����

    ��������Խ�̸ʽִ�У���һЩ�����Եı༭�����������㡣

    �������ϣ���������һЩλԪӳ������ʾ�������޷��ڷǣ�ϵͳ��ִ�С�

    Ҫ�˷����������⣬��Ҫ����Ԫͼ(character picture) ����ʽ������λ
Ԫӳ�񣬲��ṩ�����ʽ��bitmap�ĸ�ʽ�໥ת���ij�ʽ����Ԫͼ��ʽ�Ƿdz�
���Եģ�ÿһ�е�������һ�е���Ԫ����ʾ���ڵ�������һ��ָ������Ԫ��Ԥ
��Ϊ# ����׵���������һ����Ԫ��Ԥ��Ϊ -����ʾ����cntr_ptrΪ����Ԫ
ͼ�ĸ�ʽ��ͼ14-3

        ��������������������������������������������
        ��      p164  fig 14.3                    ��
        ��                                        ��
        ��    ͼ14-3  ��Ԫͼ��ʽ��λԪӳ��        ��
        ��������������������������������������������

    �����Ա��ı༭���������κ�ϵͳ���κ�������ʵij�ʽ�༭��Щͼ�Σ�
Ҳ������ɨ����(scanner) ������Ӱ���豸����


14.3.1 ��Ԫͼ�ͣ�λԪӳ����ת��

    ���ṩ��������ʽ����Ԫͼ��ʽ��λԪӳ���ʽ���ת����

    atobm : ת��һ����ԪͼΪ��׼��λԪӳ��

    bmtoa : ת��һ����׼��λԪӳ��Ϊ��Ԫͼ��

    ������ʽ��������ָ���Ժ���Ԫ�����ںͰ����ء�


14.4  ������ĸ��Ӵ� -- xsetroot

xsetroot �����趨��ĸ��Ӵ������磬����Ըı��Ӵ���������ɫ��ͼ��(
pattern) ���Լ��Ӵ���ʹ�õ��αꡣ

14.4.1 �趨һ��������λԪͼ��

   �����ָ���κ�λԪӳ����������өĻ�ı�����ֻҪ���ǣصı�׼��ʽ��
�� �� xsetroot ���������ϣ�-bitmap ѡ�������λԪӳ��ĵ�����ơ����磺

    xsetroot -bitmap /usr/include/X11/bitmaps/mensetmanus

�����һ�����µı�������ͼ14-4��(������ Mens et Manus (mensetmanus)
�� MIT�����ԣ����������ͼ�μ򵥱��ֳ� MIT�ľ���)

             ������������������������������������
             ��                                ��
             ��  P165   Fig 14.4               ��
             ��                                ��
             ��ͼ14 - 4 �趨 mensetmanusλԪ   ��
             ��         ӳ��Ϊ����ͼ��ĸ��Ӵ� ��
             ������������������������������������


14.4.2 �趨һ�������α�

����㲻Ҫʹ��Ԥ��� "��� X "�α꣬�������ѡ�� -CURSOR ����
cursorbitmap �� maskbitmap�����������ı������������ΪλԪӳ��
��������ơ����磺�趨�α�Ϊǰ����ʾ��λԪӳ��ʹ�����

    xsetroot -cursor /usr/include/X11/bitmaps/cntr_ptr\
    /usr/include/X11/bitmaps/cntr_ptrmsk

λԪӳ��Ķ���ͼ��ͼ14-5.

             ������������������������������������
             ��                                ��
             ��  P166   Fig 14.5               ��
             ��                                ��
             ��ͼ14 - 5 �α꼰�����ֵ�λԪӳ�� ��

             ������������������������������������

maskbitmap������cursorbitmap����Щ����������ʾ�������α�����
��ֻ�ж�Ӧ����������(mask)Ϊ�ڵIJ��ݲŻ��õ����α���������ز���
����ʾ�������ܽ���˵�����־������α�����Σ���֮���α�λԪӳ����
���������ε���ɫ�����ֺ��α��λԪӳ������С��ͬ��

�������ֽṹ����������·dz����ã�

1.  ������ "Ǭ����" ��ʾ���dz������α꣬������ʾ�����ŵĿհס�����
���û�����֣�cntr_ptr����ʾ��һ�� 16 x 16�׷�������һ����ͷ��������
��ָ���ʱ�������һ���ݻᱻ��������ڸ�ס��

2.  �ʵ����趨���֣�����Ա�֤���۱�������ɫΪ�ξ��ܿ��õ��αꡣ����
cntr_ptrmsk �� cntr_ptr �ı߾��һ��Ԫ�أ������α���ΧΧ����һȦ�ױ�
��������ֺ��α��С��ͬ�Ļ������α��ں�ɫ�����򽫻���ʧ����

    ����������ֺ��α�ʹ����ͬ��λԪӳ���α�����λ�������������
Ϊ���־������Σ�����������������Ҫ�ģ������ǿ��Թ��������ǵ��α����
������ͬ��ɫ������ʱ����ͺ��ѿ����α��ˡ�ʵ���ϣ�����������
/usr/include/X11/bitmaps�е�λԪӳ��������Ӧ�����֣������ʹ������
�����α꣬�����ʹ���α�λԪӳ�������֡�

    ����Ȥ�Ļ�����һ�԰�mensetmanus �����α�����֣��ȵ��������Ͻǣ���


14.4.3  ����ı����趨ѡ��

    �������������ѡ�� -solid colour�趨����Ϊ��һ��ɫ���ڵ�ɫ��ʾ
����ֻ�к�ɫ�Ͱ�ɫ����������� -grey�� -gray�趨��ɫ�ĻҶȣ���Ҳ����
�� -mod x y �趨����ͼ��x �� yΪ 1��16������


14.4.4  �ض�Ԥ��ı������α�

    ����㲻ϲ������е��趨�����������������֮һ�ָ�Ԥ����α�ͱ�
����

        xsetroot -def
        xsetroot


14.5  �ܽ�

    �����У����ǿ�������Խ�̸�ķ�ʽ�༭λԪӳ����δ������ǣ�����
�ΰ������������ʽ֮����ת����ʹ�����ܱ���Щ���Ӵ�ϵͳ��ʽ���?���
�԰�λԪӳ���xsetroot������һ���Զ����ʺ����Լ���ζ��ϵͳ���ò�ͬ
�ķ����趨����Ӵ��ı����ͱ���αꡣ

    ��һ�£����Ǽ���������ϵͳ����������һ���������趨�س�ʽԤ��ѡ��
�Ľṹ��

=====

--
�� ��Դ:���������� cs3.xmu.edu.cn��[FROM: 210.34.6.201]
Technical Details
Message-ID: <3MN4eQ$WTf@cs3.xmu.edu.cn>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: f71f9,5054485d7d788304,start
X-Google-Attributes: gidf71f9,public
From: wlf.bbs@cs3.xmu.edu.cn (�����ǡ�����������)
Subject: ��  �ףɣΣģϣף�  ϵͳʹ��ָ��--(14)
Date: 1998/01/02
Message-ID: <3MN4eQ$WTf@cs3.xmu.edu.cn>
X-Deja-AN: 312056196
X-Filename: xwindow/M.883751834.A
Organization: XMU CS BBS
Newsgroups: cn.bbs.comp.xwindow