WWindowSpan
مساحة عمل برمجية بالذكاء الاصطناعي

حدود العرض لصفوف ثابتة

احسب نطاقًا نصف مفتوح للصفوف المرئية من ارتفاع ثابت وإزاحة التمرير وارتفاع العرض.

● ● ●WindowSpan●
سير العمل · حدود العرض لصفوف ثابتة ×
from math import isfinite, ceil

def row_window(count, row_height, offset, viewport, overscan=1):
    if type(count) is not int or count < 0 or type(overscan) is not int or overscan < 0:
        raise ValueError("rows.count")
    if not all(type(x) in (int, float) and isfinite(x) for x in (row_height, offset, viewport)) or row_height <= 0 or viewport < 0:
        raise ValueError("rows.geometry")
    start_units = max(0, offset) / row_height
    first = count if start_units >= count else int(start_units)
    if first == count or viewport == 0:
        return first, first
    span = viewport / row_height
    end = count if span >= count - start_units else min(count, ceil(start_units + span) + overscan)
    return max(0, first - overscan), end
✳حدود العرض لصفوف ثابتة
✓ التغييراتراجع قبل التطبيق ↗
رسم توضيحي لمساحة العمل
النماذج
اضبط نقطة اتصال متوافقة مع OpenAI أو Anthropic باستخدام العنوان الأساسي ومفتاح API عند الحاجة. اختبر الاتصال. يجب أن يعمل خادم النموذج المحلي؛ وقد ترسل الأدوات البعيدة البيانات بشكل منفصل.
المشروع
اختبر التمرير السالب وتجاوز النهاية والعرض بارتفاع صفر مع تقييد الفهارس ورفض ارتفاع الصف غير الصالح.
راجع قبل التطبيق
قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية.
سير العمل

حدود العرض لصفوف ثابتة

سير العمل ↗
سير العمل
from math import isfinite, ceil

def row_window(count, row_height, offset, viewport, overscan=1):
    if type(count) is not int or count < 0 or type(overscan) is not int or overscan < 0:
        raise ValueError("rows.count")
    if not all(type(x) in (int, float) and isfinite(x) for x in (row_height, offset, viewport)) or row_height <= 0 or viewport < 0:
        raise ValueError("rows.geometry")
    start_units = max(0, offset) / row_height
    first = count if start_units >= count else int(start_units)
    if first == count or viewport == 0:
        return first, first
    span = viewport / row_height
    end = count if span >= count - start_units else min(count, ceil(start_units + span) + overscan)
    return max(0, first - overscan), end
مساحة عمل برمجية بالذكاء الاصطناعي

تبدأ فكرتك التالية هنا.

تنزيل لنظام Windows ↗